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

这个__改私有属性看起来也没用呀,就count本来就是类属性不可被实例属性更改的?

参考答案说,这样实例变量在外部无法修改__count,但本来count不就无法修改嘛,那__就没什么用了啊?不太懂..

正在回答

5 回答

两种都没法修改,但是加了__之后外部就没法直接Animal.count获取了,得def get_count(self)


0 回复 有任何疑惑可以回复我~

私有属性虽然没法被直接修改,可以在类里面定义类方法,如get_count(),或者set_count()用来获取和修改。保证数据的唯一性。

0 回复 有任何疑惑可以回复我~

把代码写成下方的就能看出区别来了


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))


0 回复 有任何疑惑可以回复我~

你打的是一个_吧,两个_的时候是不能被外部调用的

0 回复 有任何疑惑可以回复我~

两种都没法修改,但是加了__之后外部就没法直接Animal.count获取了,得def get_count(self)

0 回复 有任何疑惑可以回复我~
#1

幕布斯乐

两个_是无法被外部获取的
2022-03-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这个__改私有属性看起来也没用呀,就count本来就是类属性不可被实例属性更改的?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信