对象属性和字典

时间:2014-09-05 15:22:08

标签: python class python-2.7 dictionary

比较

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将适用于这两种情况,但显然字典吸气剂不会。

有人可以在短时间内解释以两种方式设置课程的区别吗?是否有一种简单的方法来协调第一类类,以便.__dict__实际显示所有属性?

1 个答案:

答案 0 :(得分:4)

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