0

私は問題を抱えています。あなたがそれに対する答えを教えてくれることを願っています。

Pythonファイルに保存されているクラス内の関数の数を返す関数を作成しようとしています..そうする良い方法はありますか??

4

2 に答える 2

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
于 2012-10-21T04:38:10.183 に答える
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

2番目の質問では、次のようなものが機能するはずです。

import foo
import inspect

for a,b in inspect.getmembers(foo, inspect.isclass):
    print a 
    print len(inspect.getmembers(b, inspect.ismethod))
于 2012-10-21T04:52:13.667 に答える