如何调用名称中带空格的方法?

时间:2013-04-03 23:38:24

标签: python syntax identifier

我有以下课程:

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

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

1 个答案:

答案 0 :(得分:11)

使用getattr

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

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