为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

asdhjhg 2017-03-12 22:38:28
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'
查看完整描述

2 回答

?
孤独的小猪

TA贡献232条经验 获得超302个赞

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

查看完整回答
1 反对 回复 2017-03-20
?
BlackStars

TA贡献3条经验 获得超0个赞

Person.__count +=。要创建了一个新的实例才会调用 __init__这个函数,从而count才应该+1.如果放外面,就无法计算声明了几个实例。你的第二个第三个问题,都只是从类访问类属性。

查看完整回答
反对 回复 2017-03-20
  • 2 回答
  • 0 关注
  • 1476 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信