关于Python类中属性的访问问题?

class Person(object):

    __count = 0

    def __init__(self, name):
        self.name = name
        Person.__count += 1#这里的这个代码不是应该写在def外部吗,即__count=0后面啊
        print Person.__count #这里的print是从实例访问类属性??

p1 = Person('Bob')
p2 = Person('Alice')

try:
    print Person.__count#这里的print是从类访问类属性??
except AttributeError:
    print 'attributeerror'


asdhjhg
浏览 1519回答 2
2回答

孤独的小猪

对的,楼上说的是正确的。Person.__count += 1写在init函数内部,是为了计算声明了几个实例,因为只有当类实例化后,才会调用init函数。而如果写在外面的话,就没有意义了。后面的print打印的结果的确是从实例访问类属性。

BlackStars

Person.__count +=。要创建了一个新的实例才会调用 __init__这个函数,从而count才应该+1.如果放外面,就无法计算声明了几个实例。你的第二个第三个问题,都只是从类访问类属性。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python