2011-10-29 37 views
4

假設我們有以下的tester.py如何從一個對象獲取函數定義?

class Tester(object): 
    def method(self): 
     print 'I am a Tester' 

定義的代碼,我們已經在main.py

from tester import Tester 
t = Tester() 
#print definition of t 

定義如下反正是有,我們可以從得到一個類/函數的定義以系統的方式對象?或者我們必須解析代碼並手動提取代碼定義,然後將它們保存到一個字符串中?

+3

您可能要解釋你想實現更大的目標,因爲可能有一個更好的方式來做到這一點比你想到的任何事情都要好。 –

回答

8

可以使用inspect模塊:

import inspect 

class Tester(object): 
    def method(self): 
     print 'I am a Tester' 

print inspect.getsource(Tester) 

輸出:

class Tester(object): 
    def method(self): 
     print 'I am a Tester' 
+1

不錯,簡單。好答案。 –

+0

非常感謝,這正是我所期待的:) – John

+0

@RaymondHettinger:謝謝! –

相關問題