python基础之变量私有化

直接看例子,如下定义了3个变量:
2个私有实例变量:__name,__age
1个非私有实例变量:country

class Test:

    def __init__(self, name, age, country):
        self.__name = name
        self.__age = age
        self.country = country

    def test_1(self):
        print("this is test1")

我们实例话一个对象,并尝试对其变量进行查看和修改:
python基础之变量私有化

class Test:

    def __init__(self, name, age, country):
        self.__name = name
        self.__age = age
        self.country = country

    @property
    def age(self):
        return self.__age

    @age.setter
    def age(self, new_age):
        self.__age = new_age

    def test_1(self):
        print("this is test1")

然后,我们继续尝试对变量进行查看和修改:
python基础之变量私有化
我们可以看到,现在是可以对age这个私有属性进行获取和修改的了。运行结果如下:

18
19

@property的实现比较复杂,我们就先直接学习如何用:
1、@property装饰一个方法,方法名和属性名相同(不要__),被装饰的方法返回私有属性。
2、当实用@property后,自动生成一个@属性名.setter的装饰器,可用其装饰一个修改私有属性的方法。

 

 

 

 



 

 我们可以看到,__name和__age这两个私有实例变量,是无法直接访问的

那我们可以如何直接访问了,这里就需要用到@property装饰器了

上一篇:Python 绘制2016世界GDP地图


下一篇:Echarts制作一张全球疫情图