3

我有以下课程:

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']

这不是我的课,所以请不要告诉我重写它。我只需要调用该方法。

4

1 回答 1

12

使用getattr

>>> a = A()
>>> getattr(a, 'any vegetable')()

请注意,名称中包含奇怪的字符(例如空格)是一个非常非常糟糕的主意。没有理智的人会这样做。

于 2013-04-03T23:40:16.717 回答