知行编程网知行编程网  2022-11-18 03:30 知行编程网 隐藏边栏  9 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python类成员的访问限制的相关知识,包括子类访问父类成员,以及基类能够访问派生类的成员吗这些编程知识,希望对大家有参考作用。

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电脑。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享