Python:列出对象中的变量

Python:列出对象中的变量,python,Python,所以基本上我需要帮助来克服懒惰 在python中,是否可以获取一个对象,然后列出它的所有变量 比如说 class some_object: def __init__(self): self.Name = None self.UUID = None 然后调用列出对象中所有变量名的神奇函数 可能会返回与此相似的内容: [some_object.Name, some_object.UUID] 请记住,我不需要附加到对象的值,而是需要变量的名称,例如name和UUID 如果有人能

所以基本上我需要帮助来克服懒惰

在python中,是否可以获取一个对象,然后列出它的所有变量

比如说

class some_object:
  def __init__(self):
    self.Name = None
    self.UUID = None
然后调用列出对象中所有变量名的神奇函数

可能会返回与此相似的内容:

[some_object.Name, some_object.UUID]
请记住,我不需要附加到对象的值,而是需要变量的名称,例如name和UUID

如果有人能帮我,那就太棒了

编辑: 谢谢大家回答我的问题,我需要的神奇功能是vars()。我非常感谢大家在这个问题上的努力和投入

您可以使用vars():

可以使用该函数获取对象具有的(某些)属性列表,如下所示:

>>> 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']
或者,该函数可用于获取对象的
\uuuu dict\uuu
属性:

>>> class Foo:
...     def __init__(self):
...         self.name = None
...         self.uuid = None
>>> thing = Foo()
>>> vars(thing)
{'name': None, 'uuid': None}
然而,正如一些评论者所指出的,很可能有一种更好的方式来完成你想要做的事情。
dir()
函数不一定返回对象具有的所有属性的完整列表;从文档中:

如果对象未提供
\uuuuuuuuuuuuu dir()
,则函数将尽最大努力从对象的
\uuuuuuuu dict
属性(如果已定义)及其类型对象收集信息。结果列表不一定完整,当对象具有自定义的
\uuuu getattr\uuuu()
时,结果列表可能不准确

由于提供
dir()
主要是为了方便在交互提示下使用,因此它尝试提供一组有趣的名称,而不是提供严格或一致定义的名称,其详细行为可能会在不同版本中发生变化。例如,当参数是类时,元类属性不在结果列表中


看起来你想让我们为你写些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查和。是否要从
some_object
some_object()
获取此列表;i、 e.从类定义或该类的实例…?也不确定这与“懒惰”有什么关系…?是的,这是可能的,但您是否需要该功能是值得怀疑的。你没有提供你想要的用例;可能一个
dict
就足以满足您想要实现的目标。
>>> class Foo:
...     def __init__(self):
...         self.name = None
...         self.uuid = None
>>> thing = Foo()
>>> vars(thing)
{'name': None, 'uuid': None}