Python中@property装饰器的使用

说明

  • 在获取、设置和删除对象属性的时候,需要额外做一些工作。比如在游戏编程中,设置敌人死亡之后需要播放死亡动画。
  • 需要限制对象属性的设置和获取。比如用户年龄为只读,或者在设置用户年龄的时候有范围限制。
  • 这时就可以使用 property 工具,它把方法包装成属性,让方法可以以属性的形式被访问和调用

演示

class Student:
    def __init__(self):
        self._age = None

    @property
    def age(self):
        print("获取属性时执行的代码")
        return self._age

    @age.setter
    def age(self, age):
        print("设置属性时执行的代码")
        self._age = age

    @age.deleter
    def age(self):
        print("删除属性时执行的代码")
        del self._age


student = Student()

# 设置属性
student.age = 18
"""
设置属性时执行的代码
"""

# 获取属性
print("学生年龄为:" + str(student.age))
"""
获取属性时执行的代码
学生年龄为:18
"""

# 删除属性
del student.age
"""
删除属性时执行的代码
"""