导语:
本文主要介绍了关于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/15
- ♥ 如何使用 python 轮盘赌算法10/11
- ♥ Python 5行代码的神奇操作(一)12/26
- ♥ pycharm如何运行python代码09/12
- ♥ 什么是 Python 斐波那契数列?如何使用?09/26
- ♥ python开发用什么编辑器08/17
内容反馈