类私有变量命名

带有两个下划线开头的函数是声明该属性为私有,不能在类地外部被使用或直接访问。

原因是在外部访问时Python应用了另一个变量名。
如下代码,__sex声明该变量是类的私有变量,不能直接用类如. __spam访问,而是. _classname__spam(Python把这种技术叫做“name mangling”)

class Students:
def init(self,sex,name,age,scores):
self.__sex = sex
self.age = age
self.name =name
self.scores = scores
def get_data(self):
return self.name,self.age,self.scores,self.__sex

stu = Students(‘男’,‘taon’,‘23’,‘90’)
print(stu.__sex,stu.dict)
print(stu._Students__sex,stu.dict)

前者报错
AttributeError: ‘Students’ object has no attribute ‘__sex’

后者输出为
男 {‘name’: ‘tao’, ‘_Students__sex’: ‘男’, ‘age’: ‘23’, ‘scores’: ‘90’}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值