如果我在字符串中有一个对象和一个方法名称,该如何调用该方法?
class Foo: def bar1(self): print 1 def bar2(self): print 2 def callMethod(o, name): ??? f = Foo() callMethod(f, "bar1")
使用内置getattr()功能:
getattr()
class Foo: def bar1(self): print(1) def bar2(self): print(2) def call_method(o, name): return getattr(o, name)() f = Foo() call_method(f, "bar1") # prints 1
您还可以setattr()用于通过名称设置类属性。
setattr()