我有以下课程:
Help on class A in module a:
class A(__builtin__.object)
| Methods defined here:
|
| any vegetable(self)
| TODO document this
|
| getHeight(self)
| uses the chicken to measure it
调用any vegetable
不起作用:
>>> a.A().any vegetable()
File "<stdin>", line 1
a.A().any vegetable()
^
SyntaxError: invalid syntax
如何拨打any vegetable
?
好吧,我不敢相信我必须提供更多证据,但现在就去了。
>>> dir(a.A)
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'any vegetable', 'getHeight']
这不是我的班级,所以请不要告诉我重写它。我只需要调用该方法。
答案 0 :(得分:11)
使用getattr
:
>>> a = A()
>>> getattr(a, 'any vegetable')()
请注意,名称中包含奇怪字符(例如空格)是 非常非常糟糕的 。没有理智的人会做到这一点。