导语:
本文主要介绍了关于Python类成员的访问限制的相关知识,包括子类访问父类成员,以及基类能够访问派生类的成员吗这些编程知识,希望对大家有参考作用。
1、说明
(1)默认情况下,Python中的类成员是public的,没有像public、private这样的关键字来修改Python中的类成员。在 Python 中定义私有成员只需在变量或函数名称前加上两个下划线,函数或变量就会变为私有。外部使用原始私有成员的名称时,会提示找不到。但这只是一个约定的方法,如果你想在外部调用它,你仍然可以调用它。
(2) Python的私有成员并不是真正私有的,也可以在类外调用。
2、实例
#!/usr/bin/env python
#-*- coding:utf-8 -*-
class Demo(object):
"""docstring for Demo"""
def __init__(self):
super(Demo, self).__init__()
self.__message = 'Hello World'
def __getMessage(self):
return self.__message
if __name__ == '__main__':
demo = Demo()
#直接调用会报错:AttributeError: 'Demo' object has no attribute '__getMessage'
#print(demo.__getMessage())
#我们来看一下demo模块都有哪些成员
print(dir(demo))
"""
可以看到原来Python使用一种name mangling(名称修饰)技术,将__membername替换成_classname__membername,
['_Demo__getMessage', '_Demo__message', ...]
"""
#我们使用修饰后的名字就可以成功调用
print(demo._Demo__message)
print(demo._Demo__getMessage())
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python如何进行类型转换08/29
- ♥ python里面有什么09/27
- ♥ 如何在 Python 中表示多个正方形08/14
- ♥ python break 和 continue 的比较09/13
- ♥ 如何在ubuntu中卸载python09/18
- ♥ python中常用的数据库有哪些08/26
内容反馈