2015-01-05 78 views
1

我有一個方法返回自己的名字。該方法看起來像這樣:如何獲得動態創建的方法的名稱

import inspect 
class example(object): 
    def getvalue(self): 
     return inspect.stack()[0][3] #returns current method's name 

現在我正在這樣的示例類dyamically中創建一個方法。

import inspect 
class example(object): 
    def getvalue(self): 
     return inspect.stack()[0][3] #returns current method's name 

if __name__=="__main__": 
    e = example() 
    e.method=e.getvalue 
    print e.method() 

這給出了輸出getvalue。 現在我想讓我的getvalue()方法返回我創建的名稱即方法的動態方法。有沒有辦法在Python中做到這一點?如果是這樣,我必須在getvalue()方法中做什麼更改,以便它返回動態創建的方法名稱。

import inspect 
class example(object): 
    def getvalue(self): 
     return inspect.stack()[0][3] #what to write here... 

回答

4

這是不可能的。

在Python中,同一個對象可以有多個「名稱」,因此談論對象的「名稱」是沒有意義的。

方法是對象,函數和方法的編譯器存儲編譯在__name__字段中完成時找到的「名稱」。如果稍後移動對象並將其放置在使用其他名稱可訪問的位置中,則該對象不會更改__name__字段。

+0

oh thanq for the information –

相關問題