__x会自动变形为_类名__x

正常情况

class A:

    def foo(self):
print('from A') def test(self):
self.foo() class B(A): def foo(self):
print('from B') b = B()
b.test()
# from B

把foo定义成私有

class A:

    def __foo(self):    #双下线私有属性在定义时就变形为_A__fa
print('from A') def test(self):
self.__foo() #调用变形后的私有属性对象,即_A__fa class B(A): def __foo(self):
print('from B') b = B()
b.test()
# from A

原理:父类的__x私有属性在定义时已经变形为_父类__x,子类可以继承这个属性,但无法覆盖。所以test()里面的self.__foo的self已经绑定了父类,子类的__foo()无法覆盖。

class A:

    def __foo(self):    #双下线私有属性在定义时就变形为_A__fa
print('from A') def test(self):
self.__foo() #调用变形后的私有属性对象,即_A__fa class B(A): def __foo(self):
print('from B') b = B()
b._A__foo()
# from A

Python的私有属性的缺点

这种变形并没有真正限制从外部直接访问属性

class A:

    def __foo(self):
print('from A') def test(self):
self.__foo() a = A()
a._A__foo()

最新文章

  1. 学习 AppFuse
  2. win7下安装和使用Windows XP Mode
  3. mybatis多表连接在一起查询
  4. Java程序设计的DOS命令基础
  5. Keepalived安装使用详解
  6. Day05 - Python 常用模块
  7. mac上的键盘生活——输入法键位设置小技巧以及去掉自带输入法
  8. 菜鸟学开店—最简收银POS系统
  9. 总结&计划
  10. repeater截取字数
  11. php 序列化储存和转化 json_encode() json_decode($q,true)
  12. php 日期 - 计算2个日期的差值
  13. IT第六天 - eclipse快捷操作、万年历项目的编写、菱形的打印输出、代码简化
  14. MYSQL C API 记录
  15. django 实现登录时候输入密码错误5次锁定用户十分钟
  16. epoll 惊群处理
  17. ABP 多租户 对应多数据库 租户启动报错
  18. python 内置标准库socketserver模块的思考
  19. HFun.快速开发平台(四)=》自定义列表实例(请求参数的处理)
  20. 机器学习: K-means 聚类

热门文章

  1. Ninject 2.x细说---1.基本使用
  2. js获取当前时间:yyyy-MM-dd HH:MM:SS
  3. 下载图片(vue 下载图片)
  4. 网关集成Swagger出现404错误
  5. linux 内存,cpu占用最高进程查询
  6. vue中子组件调用父组件里面的数据和方法 父组件调用子组件的数据和方法
  7. Angular 2.0 文本拖拽
  8. Go计时器
  9. Angular 调用百度地图API接口
  10. 移动APP漏洞自动化检测平台建设