あなたは(の一部)のリストを取得するにはdir()
機能を使用することができるようなオブジェクトが持つ属性、そう:
>>> class Foo:
... def __init__(self):
... self.name = None
... self.uuid = None
>>> thing = Foo()
>>> vars(thing)
{'name': None, 'uuid': None}
:
>>> class Foo:
... def __init__(self):
... self.name = None
... self.uuid = None
>>> thing = Foo()
>>> dir(thing)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'name', 'uuid']
また、vars()
関数は、オブジェクトのための__dict__
属性を取得するために使用することができます
しかし、いくつかのコメント作成者が指摘しているように、あなたがしようとしていることを達成するためのより良い方法がある可能性が高いです。 dir()
関数は、必ずしもオブジェクトが持つすべての属性の完全なリストを返すわけではありません。ドキュメントから:
オブジェクトが__dir__()
を提供していない場合は、関数が定義されている場合、オブジェクトの__dict__
属性から情報を収集するために最善しようとすると、その型のオブジェクトから。結果のリストは必ずしも完全である必要はなく、オブジェクトにカスタム__getattr__()
がある場合は不正確な場合があります。
dir()
は、主にインタラクティブプロンプトでの使用の便宜のために提供されているため、厳密にまたは一貫して定義された名前セットを提供しようとするよりも面白いセットを提供しようとします。リリース。たとえば、引数がクラスの場合、メタクラス属性は結果リストにありません。
あなたのためにコードを書きたいと思うようです。多くのユーザーは、苦労しているコーダーのコードを作成したいと考えていますが、通常、ポスターが既に問題を解決しようとしているときにのみ役立ちます。この努力を実証する良い方法は、これまでに書いたコード、サンプル入力(もしあれば)、期待される出力、実際に得られる出力(出力、トレースバックなど)を含めることです。あなたが提供する詳細があれば、受け取る可能性のある回答が増えます。 [FAQ](http://stackoverflow.com/tour)と[How to Ask](http://stackoverflow.com/questions/how-to-ask)を確認してください。 – TigerhawkT3
'some_object'や' some_object() 'からこのリストを取得しますか?すなわち、*クラス定義*またはそのクラスのインスタンスから...? – deceze
これは "怠惰"とは何が関係がありますか... ...? – deceze