Python知识点-单双下划线

 

_xxxx 变量或者方法,只能用于模块本身,其他子类可以访问,但不能被引用到其他模块去。

  比如这个变量在 1.py中不能拿到2.py中使用。

__xxxx 代表私有变量或者私有方法 只允许这个类本身访问,实例化对象后也不能通过.__xxxxx去调用,子类也不能访问,不能通过继承方式后去这个私有变量。

"单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;"双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

class Foo():

    def __init__(self):
        pass

    def public_method(self):
        print('我是公共方法')

    def __fullprivate_method(self):
        print('我是私有方法')

    def _halfprivate_method(self):
        print('我是单下下划线方法')

#实例化Foo的一个对象

f = Foo()
f.public_method() # OK
f.__fullprivate_method() # Error occur
f._halfprivate_method() # OK

 

posted @ 2018-12-17 16:09  gaoxing1  阅读(235)  评论(0编辑  收藏  举报