【Python】为什么类中的私有属性可以在外部赋值并访问?

Python:为什么类中的私有属性可以在外部赋值并访问?

##问题引入

在慕课网上学习Python类中的私有属性的时候,看到了一个同学的提问:

将count改为__count,为什么实例变量在外部仍然可以修改__count?这里print p1.__count可以打印出100

class Person(object):
__count = 0
def init(self, name):
Person.__count = Person.__count + 1
self.name = name
print Person.__count
p1 = Person(‘Bob’)
p1.__count=100
print p1.__count
p2 = Person(‘Alice’)

print Person.__count

##问题解决:

单刀直入版:

这是因为给p1.__count赋值的操作,其实是在p1中定义了一个名为__count的变量(因为Python中的都是动态变量),而没有改变类中真正的属性。


  • 太长但还是要看看版:

知识点清单
1、类的“伪私有属性”
2、在类的外部动态地创建类属性

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值