Python:列出可调用对象?

时间:2012-07-22 02:21:41

标签: python callable

我试图只列出可调用的对象,但我似乎做错了什么。例如,

>>> [m for m in dir({}) if callable(getattr({},m))]
['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

然而,这是错误的,例如{}.__doc__显然是一个字符串,等等。我的列表理解有什么问题

1 个答案:

答案 0 :(得分:4)

您编写的代码是Python提供的最佳代码。由于__doc__,您提到错误,但您的列表不包含__doc__。我想你已经有了工作代码。