我在一个类中定义了一些功能的如何将一个成员函数名称赋值给一个函数对象?
,并在A级,我有一个功能,通过它们的名字来调用其他功能
但是当我使用eval('funcname')
,它说的功能是not defined
如何评估成员函数名称是一个函数对象?
我在一个类中定义了一些功能的如何将一个成员函数名称赋值给一个函数对象?
,并在A级,我有一个功能,通过它们的名字来调用其他功能
但是当我使用eval('funcname')
,它说的功能是not defined
如何评估成员函数名称是一个函数对象?
从你的问题中不完全清楚,但它听起来像你问如何从该类中的另一个方法名称调用类中的一个方法。
因为所有的实例方法有self
参数,你可以简单地查找您通过getattr
想在该方法:
def call_by_name(self, method_name):
method = getattr(self, method_name)
method()
以下的工作,但你为什么要这么做?
class A(object):
def __init__(self):
pass
def fa(self):
print('Hello')
def fb(self):
# self.fa()
eval('self.fa()')
a = A()
a.fb()
我希望它是有用的,
如果你想在这里调用一个实例方法是这样的
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()
的方法是实例属性而不是类的属性,所以我们要仅通过实例调用 方法。
但它说“AttributeError:XXX实例没有属性'xxx'” – 2013-04-10 09:36:29
那么,它是否具有该属性?展示一个真实的例子。 – 2013-04-10 09:37:36
我付出的原因是被调用的函数是一个私有函数,但我不知道为什么? – 2013-04-10 09:46:05