葡萄葡萄
2020-10-04 15:33
参考答案说,这样实例变量在外部无法修改__count,但本来count不就无法修改嘛,那__就没什么用了啊?不太懂..
两种都没法修改,但是加了__之后外部就没法直接Animal.count获取了,得def get_count(self)
私有属性虽然没法被直接修改,可以在类里面定义类方法,如get_count(),或者set_count()用来获取和修改。保证数据的唯一性。
把代码写成下方的就能看出区别来了
class Animal(object):
__count = 0
def __init__(self,name):
Animal.__count = Animal.__count + 1
self.name = name
print('内部:{}'.format(Animal.__count))
p1 = Animal('Cat')
p2 = Animal('Dog')
print('外部:{}'.format(Animal.__count))
你打的是一个_吧,两个_的时候是不能被外部调用的
两种都没法修改,但是加了__之后外部就没法直接Animal.count获取了,得def get_count(self)
Python3 进阶教程(新版)
41910 学习 · 236 问题
相似问题