【问题标题】:Object attributes and dictionaries对象属性和字典
【发布时间】:2014-09-05 15:22:07
【问题描述】:

比较

class Results(object):
    foo = 1
    bar = 1
r = Results()
r.__dict__ 
Out[54]: {}

class Results(object):
    def __init__(self):
        self.foo = 1
        self.bar = 1
r = Results()
r.__dict__
Out[57]: {'foo': 1, 'bar': 1}

我习惯于为主要包含属性的短类做第一种情况,因为它的逻辑更短。 r.foo 在这两种情况下都可以使用,但显然字典 getter 不会。

有人能简单解释一下以两种方式设置课程的区别吗?有没有一种简单的方法来协调第一类类,使.__dict__ 实际上会显示所有属性?

【问题讨论】:

  • 一开始为什么要使用__dict__
  • 我想将对象属性保存在pandas 数据框中。
  • 我会使用vars() 而不是__dict__,但这也只返回实例字典。下一个选项是循环 dir(),然后使用 getattr() 访问属性。

标签: python class python-2.7 dictionary


【解决方案1】:

区别在于第一种情况下,成员是类的,而在第二种情况下,它们是对象的成员。第一种情况,你可以Results.__dict__看看是不是这样。

【讨论】:

    猜你喜欢
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    相关资源
    最近更新 更多