受保护的封装
私有化封装 private
受保护的封装 protected
公共的封装 public
注意:python目前不支持设定受保护的成员,但是,是开发者约定的使用方式
受保护的封装:在成员名称前面加一个下划线 _成员名称
访问的效果和公共的封装式一样,但不要随便访问。
受保护的目的:仅允许成员在当前类/对象或者子类/子对象中访问,外部禁止
类/对象内 | 子类/子对象中 | 类/对象外 | |
---|---|---|---|
私有化 | √ | × | × |
受保护 | √ | √ | √(python不支持受保护的封装,请不要在外部访问) |
公共的 | √ | √ | √ |
# 受保护的封装
class Human():
name = "马云"
_money = 100000000
def make(self):
print("每天忙着赚钱,养家,大佬您辛苦了~")
class Man(Human):
name = "张文广"
def make(self):
super().make()
print("拿到{}钱了,每天吃喝玩乐".format(self._money))
# 实例化
wenguang = Man()
# 受保护的封装实际在类/对象 的内/ 外部 都可以进行访问和操作。
wenguang.make()
print(wenguang._money)