次のことを行っているとします。
for i in dir(foo):
print type(i)
このセットアップは文字列のリストを返しますが、私は foo 内のアイテムのタイプを見つけることにもっと興味があります。これを行うにはどうすればよいでしょうか。
次のことを行っているとします。
for i in dir(foo):
print type(i)
このセットアップは文字列のリストを返しますが、私は foo 内のアイテムのタイプを見つけることにもっと興味があります。これを行うにはどうすればよいでしょうか。
dir()
属性の名前のみを提供します。getattr()
関数を使用して実際の属性を取得します。
for i in dir(foo):
attr = getattr(foo, i)
print type(attr)
inspect
モジュールにも興味があるかもしれません。このinspect.getmembers()
関数は、名前と属性をリストします。
from inspect import getmembers
for name, attr in getmembers(foo):
print '{}: {}'.format(name, type(attr))
さらに、getmembers()
属性タイプでフィルタリングすることもできます。
from inspect import getmembers, ismethod
for name, attr in getmembers(foo, ismethod):
print '{}: {}'.format(name, type(attr))
にバインドされたメソッドのみを表示しますfoo
。