python - 关于类的私有化属性的一个问题

查看:124
本文介绍了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()方法?

解决方案

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

这篇关于python - 关于类的私有化属性的一个问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆