权限管理
关于权限管理,就是定义一个私有属性,该属性只能在定义的类的内部使用,不可以在类的外部被使用,也不可以被继承该类的类调用,不过,在定义私有属性的时候 会生成一个_类名__私有属性名
的值,这个值可以被外部调用,也可以被继承该类的类使用,但是不推荐这样。
class Person: def __init__(self, name, age): self.name = name # 定义私有属性 self.__age = age def test(self): # 私有属性和方法可以在类的内部使用 print(self.__age) self.__hello() # 定义私有方法 def __hello(self): print('for test') class Man(Person): def show(self): # 私有属性和方法在子类也不可以使用 print(self.__age) p = Person('老王', 38) print(p.name) # 属性前添加连个下划线,类的外部不能使用 # print(p.__age) # 默认在添加两个下划线的属性名前添加了'_类名' # print(p.dict) # 强烈建议不要这样使用 # print(p._Person__age) p.test() # p.__hello() m = Man('小明', 18) # m.show()
类属性
关于类属性:
class Person: # 类属性属于整个类 nation = '中国' p = Person() # 此时可以通过类名来调用 print(Person.nation) # 但是不建议使用对象来调用 print(p.nation)
还有几个特殊的类属性:
# 特殊的类属性 # 打印类名字符串 print(Person.__name__) # 打印父类组成的元组 print(Person.__bases__) # 显示类相关的信息 print(Person.__dict__) # 显示当前类可设置的属性 print(Person.__slots__)