python - 关于类的私有化属性的一个问题
迷茫
迷茫 2017-04-17 17:18:12
[Python讨论组]

➜ ~ cat -n test.py

 1    class A(object):
 2       def __init__(self):
 3           self.__private()
 4           self.public()
 5       
 6       def __private(self):
 7           print 'A.__private()'
 8       
 9       def public(self):
10           print 'A.public()'
11
12    class B(A):
13       def __private(self):
14           print 'B.__private()'
15       
16       def public(self):
17           print 'B.public()'
18
19    b=B()

➜ ~ python test.py
A.__private()
B.public()

为什么第3行执行的是A的__private()方法而不是B的__private()方法?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(1)
黄舟

因为这是Python的规定,以双下划线开头的方法是私有方法,所以A的初始化器只能看到它自己的__private方法

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号