Python3-2020-测试开发-20- Python中装饰器@property

Posted csjin-study

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3-2020-测试开发-20- Python中装饰器@property相关的知识,希望对你有一定的参考价值。

装饰器

为私有属性提供getter和setter方法

 

原始实现代码:

class Employee01:

    def __init__(self,name,age):

        self.__name = name
        self.__age = age


    def get_age(self):

        return self.__age

    def set_age(self,age):

        if 1 < age <200:

            self.__age = age
        else:

            print("年龄不符合规则")

    @property
    def salary(self):

        print("salary run ...")

        return 10


e = Employee01("chu01",18)
# e.salary()

print(e.salary)

"""
salary run ...
10
"""


e.set_age(100)
print(e.get_age())    # 100

 

 

使用装饰器优化代码

 

class Employee02:

    def __init__(self,name,age):

        self.__name = name
        self.__age = age

    @property
    def age(self):

        return self.__age

    @age.setter
    def age(self,age):

        if 1 < age <=200:

            self.__age = age
        else:

            print("年龄不符合规则")



e2 = Employee02("chu02",200)
# e2.age = -200                   # 年龄不符合规则

e2.age = 200
print(e2.age)    # 200

 

以上是关于Python3-2020-测试开发-20- Python中装饰器@property的主要内容,如果未能解决你的问题,请参考以下文章

Python3-2020-测试开发-11- 循环

Python3-2020-测试开发-11- 循环

Python3-2020-测试开发-2- Python3之turtle模块使用

Python3-2020-测试开发-8- 字典dict

Python3-2020-测试开发-8- 字典dict

Python3-2020-测试开发-5- 基本运算符和复合运算符