让定义的属性拥有特殊的功能
import datetime
class Test:
def __init__(self, name, birthday):
self.name = name
self.birthday = birthday
# 把age声明成属性
@property
def age(self):
return datetime.date.today().year - self.birthday.year
# 设置age不允许赋值
@age.setter
def age(self, value):
raise AttributeError("禁止给age赋值")
# 设置age不能删除
@age.deleter
def age(self):
raise AttributeError("age不能删除")
def static_method():
print("静态函数,逻辑上与实例无关")
声明静态方法,与实例无关
# 实例化
t = Test('tom', datetime.date(1993, 1, 1))
Test.static_method() # 类自身调没问题
t.static_method() # 实例化后调用static_method()会报错
给属性绑定设置
正常调用属性没问题
修改属性时会报自定义错误,不允许修改
删除属性时,会报自定义错误