只读属性
1.概念:一个属性(一般指实例属性),只能读取,不能写入。
2.应用场景:有些属性,只限在内部根据不同场景进行修改,而对外界来说,不能修改,只能读取。
比如:电脑类的网速属性,网络状态属性
3.方式1:方案:全部隐藏(私有化,既不能读,也不能写。),部分公开(公开读的操作)
具体实现:私有化(通过“属性前置双下划线”实现。)部分公开:(通过公开的方法)
class Person: def __init__(self): self.__age = 18 def getAge(self): return self.__age p1 = Person() print(p1.getAge()) p1.__age = 99 print(p1.__age)
优化方案:装饰器@porperty。作用:将一些“属性的操作方法”关联到某一个属性当中。
class Person(object): def __init__(self): self.__age = 18 # 主要作用就是,可以以使用属性的方式,来使用这个方法。 @property def age(self): return self.__age p1 = Person() print(p1.age) p1.age = 1 print(p1.age)
概念补充