2016-09-05 7 views
-3

基本的に私は怠惰に助けが必要です。 Python:オブジェクトの変数リスト

はpythonで、すべてのそれの変数

class some_object: 
    def __init__(self): 
    self.Name = None 
    self.UUID = None 

は、オブジェクト内のすべての変数名を一覧表示します魔法の関数を呼び出すたとえば、オフ一覧表示し、オブジェクトを取る、とすることは可能です

この近くに見えます

と多分返す何か:

[some_object.Name, some_object.UUID] 

私はオブジェクトに付けられた値ではなく、名前やUUIDなどの変数の名前が必要であることを覚えておいてください。誰かが私を助けることができれば、それはすばらしいでしょう。

編集: 私の質問に答えてくれてありがとう、私が必要とした魔法の機能はvars()でした。私は)(あなたがVARSを使用することができ、問題

+0

あなたのためにコードを書きたいと思うようです。多くのユーザーは、苦労しているコーダーのコードを作成したいと考えていますが、通常、ポスターが既に問題を解決しようとしているときにのみ役立ちます。この努力を実証する良い方法は、これまでに書いたコード、サンプル入力(もしあれば)、期待される出力、実際に得られる出力(出力、トレースバックなど)を含めることです。あなたが提供する詳細があれば、受け取る可能性のある回答が増えます。 [FAQ](http://stackoverflow.com/tour)と[How to Ask](http://stackoverflow.com/questions/how-to-ask)を確認してください。 – TigerhawkT3

+0

'some_object'や' some_object() 'からこのリストを取得しますか?すなわち、*クラス定義*またはそのクラスのインスタンスから...? – deceze

+0

これは "怠惰"とは何が関係がありますか... ...? – deceze

答えて

2

の全員の努力と入力し、本当に感謝:

class about_me: 
    def __init__(self): 
    self.name = "Lyend Victorian" 
    self.age = "25" 
    self.height = "180" 

me = about_me() 

>>> vars(me) 
{'age': '25', 'name': 'Lyend Victorian', 'height': '180'} 
2

あなたは(の一部)のリストを取得するには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()は、主にインタラクティブプロンプトでの使用の便宜のために提供されているため、厳密にまたは一貫して定義された名前セットを提供しようとするよりも面白いセットを提供しようとします。リリース。たとえば、引数がクラスの場合、メタクラス属性は結果リストにありません。

関連する問題