让定义的属性拥有特殊的功能

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()会报错

测开之路八十四:给属性绑定设置,如不允许修改、不允许删除

测开之路八十四:给属性绑定设置,如不允许修改、不允许删除

 

给属性绑定设置

正常调用属性没问题

测开之路八十四:给属性绑定设置,如不允许修改、不允许删除

 

修改属性时会报自定义错误,不允许修改

测开之路八十四:给属性绑定设置,如不允许修改、不允许删除

 

删除属性时,会报自定义错误

测开之路八十四:给属性绑定设置,如不允许修改、不允许删除

 

相关文章:

  • 2021-07-29
  • 2021-11-08
  • 2022-01-12
  • 2022-12-23
  • 2021-04-10
  • 2022-12-23
  • 2021-12-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-27
  • 2022-12-23
  • 2021-05-06
  • 2021-12-08
  • 2022-12-23
相关资源
相似解决方案