1

次のことを行っているとします。

for i in dir(foo):

    print type(i)

このセットアップは文字列のリストを返しますが、私は foo 内のアイテムのタイプを見つけることにもっと興味があります。これを行うにはどうすればよいでしょうか。

4

1 に答える 1

6

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

于 2013-05-08T16:23:38.473 に答える