Skip to content

10 Python中的私有属性

一、什么是私有属性

Python中一个类主要由静态特征和动态特征构成。 静态特征的标准称呼为:字段(实例、类) 动态特征的标准称呼为:方法(实例方法、类方法、静态方法) 对于某些字段,如果在其它类中可以对其直接访问和修改,会对其程序带来很大的隐患。为了保护某些字段不能随便更改,我们将其设置为私有字段,只有在类中才可以访问。 定义私有字段时,在变量名前加上两个下划线__变量名。 为了读取私有字段我们可以定义字段同名方法,并添加装饰器@property,这样在外部类中可以像类的普通字段一样读取。 为了修改私有字段我们可以定义字段的同名方法,传入参数为待修改的值。装饰器为@方法名.setter

class Person:
    def __init__(self,name,age):
        self.name = name
        self.__age = age
    def say_hello(self):
        print("我的名字叫%s,今年%s岁了"%(self.name,self.__age))
    # 读取属性
    @property
    def age(self):
        return self.__age
    # 修改属性
    @age.setter
    def age(self,number):
        self.__age = number
if __name__ == '__main__':
    alice = Person("xiaoyu","23")
    alice.say_hello()
    alice.age = 12
    print(alice.age)

二、私有属性能继承吗

私有属性是不能继承的,只能在类的内部调用。子类是无法调用父类的私有属性的。·