2013-04-10 200 views

回答

3

從你的問題中不完全清楚,但它聽起來像你問如何從該類中的另一個方法名稱調用類中的一個方法。

因爲所有的實例方法有self參數,你可以簡單地查找您通過getattr想在該方法:

def call_by_name(self, method_name): 
    method = getattr(self, method_name) 
    method() 
+0

但它說「AttributeError:XXX實例沒有屬性'xxx'」 – 2013-04-10 09:36:29

+2

那麼,它是否具有該屬性?展示一個真實的例子。 – 2013-04-10 09:37:36

+0

我付出的原因是被調用的函數是一個私有函數,但我不知道爲什麼? – 2013-04-10 09:46:05

0

以下的工作,但你爲什麼要這麼做?

class A(object): 
    def __init__(self): 
     pass 

    def fa(self): 
     print('Hello') 
    def fb(self): 
#  self.fa() 
     eval('self.fa()') 

a = A() 
a.fb() 
0

我希望它是有用的,

如果你想在這裏調用一個實例方法是這樣的

class A: 
def foo(self): 
     print " ok" 
     return "ok" 
def bar(self): 
     #i = A() 
     #print eval('i.foo()') 
      print eval('self.foo()') 
a = A() 
a.bar() 

的方法是實例屬性而不是類的屬性,所以我們要僅通過實例調用 方法。

相關問題