应用场景
在实际开发中,对象的某些属性和方法可能只希望在对象的内部被使用,而不希望在外部被访问到。显而易见,私有属性就是对象不希望公开的属性,私有方法就是对象不希望公开的方法。
怎样定义私有属性、私有方法呢?
在 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法。例如 __age
class Women:
def __init__(self, name):
self.name = name
# 不要问女生的年龄
self.__age = 18
def __secret(self):
print("我的年龄是 %d" % self.__age)
xiaofang = Women("小芳")
# 私有属性,外部不能直接访问
# print(xiaofang.__age)
# 私有方法,外部不能直接调用
# xiaofang.__secret()
伪私有属性和私有方法(了解)
*提示:在日常开发中, 不要使用这种方式 , 访问对象的 私有属性 或 私有方法
Python
中,并没有 真正意义 的 私有
-
在给 属性、方法 命名时,实际是对 名称 做了一些特殊处理,使得外界无法访问到
-
处理方式:在 名称 前面加上
_类名
=>_类名__名称
# 私有属性,外部不能直接访问到
# 私有属性,外部不能直接访问到
print(xiaofang._Women__age)
# 私有方法,外部不能直接调用
xiaofang._Women__secret()