Python 私有属性和私有方法

2019-05-31 10:54:11 浏览数 (1)

01. 应用场景及定义方式

应用场景

  • 在实际开发中,对象某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到
  • 私有属性 就是 对象 不希望公开的 属性
  • 私有方法 就是 对象 不希望公开的 方法

定义方式

  • 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法 __secret(self)
代码语言:javascript复制
class DeadFatBoy:

    def __secret(self):
        print("这是一个不能说的秘密")

    def printMySecret(self):
        self.__secret()

if __name__ == '__main__':
    libai = DeadFatBoy("李白","75")
    libai.printMySecret()

执行如下:

代码语言:javascript复制
G:Python27python.exe F:/pythonProject/CigarettesSystem/DeadFatBoy.py
这是一个不能说的秘密

其中__secret这个私有方法只能在类中调用,所以外部对象实例想要获取私有方法或者私有属性,那么就需要定义一个公有的方法来传递数值。

02. 伪私有属性和私有方法(科普)

Python 中,并没有 真正意义私有

  • 在给 属性方法 命名时,实际是对 名称 做了一些特殊处理,使得外界无法访问到
  • 处理方式:在 名称 前面加上 _类名 => _类名__名称
代码语言:javascript复制
# 私有属性,外部不能直接访问到
print(xiaofang._Women__age)

# 私有方法,外部不能直接调用
xiaofang._Women__secret()

0 人点赞