码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-06-09 12:37:37      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:开发   ini   合规   employee   @age   代码   else   bsp   div   

装饰器

为私有属性提供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

标签:开发   ini   合规   employee   @age   代码   else   bsp   div   

原文地址:https://www.cnblogs.com/chushujin/p/13071706.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!