zoukankan      html  css  js  c++  java
  • 测开之路八十四:给属性绑定设置,如不允许修改、不允许删除

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

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

    给属性绑定设置

    正常调用属性没问题

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

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

  • 相关阅读:
    [Redis]在.NET平台下的具体应用
    [Redis]在Windows下的下载及安装
    【重读MSDN之ADO.NET】ADO.NET连接
    贪心
    树状数组
    并查集
    模拟
    kruskal
    树链剖分
    匈牙利算法
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/11380441.html
Copyright © 2011-2022 走看看