Bri*_*unt 9 python reflection methods
我希望能够在具有动态函数名称的Python类上调用不同的方法,例如
class Obj(object):
def A(self, x):
print "A %s" % x
def B(self, x):
print "B %s" % x
o = Obj()
# normal route
o.A(1) # A 1
o.B(1) # B 1
# dynamically
foo(o, "A", 1) # A 1; equiv. to o.A(1)
foo(o, "B", 1) # B 1
Run Code Online (Sandbox Code Playgroud)
什么是"foo"?(或者是否有其他方法?)我确定它必须存在,但我似乎无法找到它或记住它的名称.我看了看getattr,apply和其他的内置功能列表.这是一个简单的参考问题,但唉,我来了!
谢谢阅读!
Sve*_*ach 33
嗯,getattr确实似乎是你想要的:
getattr(o, "A")(1)
Run Code Online (Sandbox Code Playgroud)
相当于
o.A(1)
Run Code Online (Sandbox Code Playgroud)