オブジェクトの属性の値を知らせる方法はありますか?たとえば、info = urllib2.urlopen('http://www.python.org/')
infoのすべての属性の値を知りたいです。たぶん私は情報が持っている属性が何であるかを知りません。そして、str()またはlist()は私に答えを与えることができません。
質問する
283 次
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
于 2013-01-20T11:16:39.320 に答える
0
dir()を使用したり、dictを調べたりするすべてのメソッドは、基本的には使用できません。
より良いチェック
obj.__class__
と
obj.__class__.__bases__
オブジェクトが実際に何であるかを理解するために。
次に、モジュールの公式APIドキュメントを確認する必要があります。
メソッドとデータは非公開である可能性があり、ドキュメントで特に明記されていない限り、一般に公開されていません。
于 2013-01-20T11:48:28.373 に答える