首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列出对象的属性

列出对象的属性
EN

Stack Overflow用户
提问于 2010-04-20 20:28:36
回答 17查看 863.8K关注 0票数 445

是否有一种方法可以获取存在于类实例上的属性列表?

代码语言:javascript
复制
class new_class():
    def __init__(self, number):
        self.multi = int(number) * 2
        self.str = str(number)

a = new_class(2)
print(', '.join(a.SOMETHING))

期望的结果是输出"multi,str“。我希望它能看到脚本各个部分的当前属性。

EN

回答 17

Stack Overflow用户

发布于 2010-04-20 20:44:43

代码语言:javascript
复制
>>> class new_class():
...   def __init__(self, number):
...     self.multi = int(number) * 2
...     self.str = str(number)
... 
>>> a = new_class(2)
>>> a.__dict__
{'multi': 4, 'str': '2'}
>>> a.__dict__.keys()
dict_keys(['multi', 'str'])

您可能还会发现pprint很有帮助。

票数 389
EN

Stack Overflow用户

发布于 2010-04-20 21:43:30

代码语言:javascript
复制
dir(instance)
# or (same value)
instance.__dir__()
# or
instance.__dict__

然后,您可以测试type()是什么类型,或者callable()是不是方法。

票数 202
EN

Stack Overflow用户

发布于 2018-09-29 06:18:19

所有前面的答案都是正确的,你有三个选项来回答你的问题

  1. dir()
  2. vars()
  3. __dict__

代码语言:javascript
复制
>>> dir(a)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'multi', 'str']
>>> vars(a)
{'multi': 4, 'str': '2'}
>>> a.__dict__
{'multi': 4, 'str': '2'}
票数 123
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2675028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档