-1

我在 A 类中定义了一些函数

而且在 A 类中,我有一个函数可以用它们的名字调用另一个函数

但是当我使用eval('funcname')时,它说功能是not defined

如何将成员函数名称评估为函数对象?

4

3 回答 3

3

您的问题并不完全清楚,但听起来您在问如何从该类中的另一个方法按名称调用该类中的一个方法。

由于所有实例方法都有self参数,您可以通过以下方式简单地查找所需的方法getattr

def call_by_name(self, method_name):
    method = getattr(self, method_name)
    method()
于 2013-04-10T09:33:44.360 回答
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()
于 2013-04-10T09:34:32.103 回答
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()

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

于 2013-04-10T09:35:08.877 回答