装饰器

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

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-02-26
  • 2022-02-17
  • 2021-08-21
  • 2021-06-04
  • 2022-12-23
猜你喜欢
  • 2021-11-14
  • 2021-08-09
  • 2021-06-06
  • 2021-08-19
  • 2021-06-20
  • 2022-12-23
相关资源
相似解决方案