获取python中一个类中的函数数量?

时间:2012-10-21 04:29:16

标签: python function

我遇到了问题,希望你能给我一个答案。

我正在尝试创建一个函数来返回存储在python文件中的类中的函数数量。有一个很好的方法吗?

2 个答案:

答案 0 :(得分:3)

我尝试过:

>>> import types

>>> class Test(object):
    def a(self):
        pass
    def b(self):
        pass

>>> len([i for i in Test.__dict__.itervalues() if isinstance(i, types.FunctionType)])
2

答案 1 :(得分:1)

您也可以使用inspect模块:

class Test(object):
    def a(self):
        pass
    def b(self):
        pass


>>>>inspect.getmembers(Test, inspect.ismethod)
[('a', <unbound method Test.a>), ('b', <unbound method Test.b>)]
>>>>len(_)
2

这样的事情应该适用于你的第二个问题:

import foo
import inspect

for a,b in inspect.getmembers(foo, inspect.isclass):
    print a 
    print len(inspect.getmembers(b, inspect.ismethod))