私は問題を抱えています。あなたがそれに対する答えを教えてくれることを願っています。
Pythonファイルに保存されているクラス内の関数の数を返す関数を作成しようとしています..そうする良い方法はありますか??
私が試したこと:
>>> 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
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))