我正在尝试这样做:
class Foo(object):
def method1(self):
print "method1"
def method2(self):
print "method2"
class Fo1(object):
def __init__(self):
self.a = Foo()
def classMethod(self, selection):
self.a.selection()
A = Fo1()
A.classified('method2')
我收到了这个错误:
--> AttributeError: 'Fo1' object has no attribute 'selection'
我不想使用它(在我看来,更多编码):
def classified(self,selection):
if selection == "method1": self.a.method1()
elif selection == "method2": self.a.method2()
我应该如何对方法进行编码,以便将方法名称作为参数传递? 谢谢!
答案 0 :(得分:4)
您可以使用getattr
来执行此操作,例如
def classMethod(self, selection):
getattr(self.a, selection)()
getattr将对象作为属性名称并返回该属性,然后可以调用该属性。