权限管理
关于权限管理,就是定义一个私有属性,该属性只能在定义的类的内部使用,不可以在类的外部被使用,也不可以被继承该类的类调用,不过,在定义私有属性的时候 会生成一个_类名__私有属性名的值,这个值可以被外部调用,也可以被继承该类的类使用,但是不推荐这样。
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__)