python 类 私有成员_python之类私有成员

python类的成员前加双下划线"__", 则被看作"私有"成员. 实例不能简单地通过.来访问. 但python的"私有"成员也不是不可访问的, 只是python玩了个"名称变化术":

"尽管双下划线有些奇怪,但是看起来像是其他语言中的标准的私有方法. 真正发生的事情才是不标准的. 类的内部定义中, 所有以双下划线开始的名字都被"翻译"成前面加上单下划线和类名的形式.

>>>Secrite._Secretive__inaccessible

在了解了这些幕后的事情后, 实际上还是能在类外访问这些私有方法, 尽管不应该这么做:

>>>s._Secritive__inaccessible()

Bet you can't see me...

简而言之, 确保其他人不会访问对象的方法和特性是不可能的, 但是这类"名称变化术"就是他们不应该访问这些函数或者特性的强有力信号.

如果不需要使用这种方法但是又想被其他对象不要访问内部数据,那么可以使用单下划线. 这不过是个习惯, 但的确有实际效果. 例如, 前面有下划线的名字都不会被带星号的imports语句(from module import *)导入."

题后话:

以前老是听闻python是Java的下一个替代语言. 我不知道写这些资料的中国人是脑子进水, 还是彻底业外人士,说话如此不积阴德.

学了几天python, 发觉Java的就是一种思想, 不是python可以简单地模仿的, 更别说代替了....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值