2013-04-10 202 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() 

的方法是实例属性而不是类的属性,所以我们要仅通过实例调用 方法。

相关问题