0

オブジェクトの属性の値を知らせる方法はありますか?たとえば、
info = urllib2.urlopen('http://www.python.org/')
infoのすべての属性の値を知りたいです。たぶん私は情報が持っている属性が何であるかを知りません。そして、str()またはlist()は私に答えを与えることができません。

4

5 に答える 5

3

オブジェクトの属性のすべての名前を取得するには、を使用しますdir(obj)。それらの値を取得するには、を使用しますgetattr(obj, attr_name)。次のように、すべての属性とその値を出力できます。

for attr in dir(obj):
    print(attr, getattr(obj, attr))

などの組み込み属性が必要ない場合は、__str__単にを使用できますobj.__dict__。これは、オブジェクトの属性とその値のディクショナリを返します。

for k in obj.__dict__:
    print(k, obj.__dict__[k])
于 2013-01-20T11:26:30.447 に答える
2

vars(info)またはを使用できますinfo.__dict__。オブジェクトの名前空間を辞書としてattribute_name:value形式で返します。

于 2013-01-20T11:11:43.893 に答える
2

Pythonのdir()を使用できます。dir(info)は、オブジェクト情報のすべての有効な属性を返します。

info = urllib2.urlopen('http://www.python.org/')
print dir(info)
于 2013-01-20T11:16:46.537 に答える
1

あなたはただ使うことができますdir()

dir(info)

dir()男

引数を使用して、そのオブジェクトの有効な属性のリストを返そうとします。

于 2013-01-20T11:16:39.320 に答える
0

dir()を使用したり、dictを調べたりするすべてのメソッドは、基本的には使用できません。

より良いチェック

obj.__class__

obj.__class__.__bases__

オブジェクトが実際に何であるかを理解するために。

次に、モジュールの公式APIドキュメントを確認する必要があります。

メソッドとデータは非公開である可能性があり、ドキュメントで特に明記されていない限り、一般に公開されていません。

于 2013-01-20T11:48:28.373 に答える