1 # Author : Kelvin 2 # Date : 2019/1/25 14:46 3 class Decproperty: 4 def __init__(self, func): 5 self.func = func 6 7 def __get__(self, instance, owner): 8 print("get") 9 if instance is None: 10 return self 11 res = self.func(instance) 12 setattr(instance, self.func.__name__, res) 13 return res 14 15 16 class People: 17 def __init__(self, name, age): 18 self.name = name 19 self.age = age 20 21 @Decproperty 22 def Age(self): 23 return "%s的年龄是%d" % (self.name, self.age) 24 25 26 p = People("kelvin", 20) 27 print(p.Age) 28 print(p.__dict__) 29 print(p.Age) 30 print(p.Age)
@property 的功能就是类或类的实例化对象调用类的方法时,只需要用 类.方法名 或对象名.方法名 不需要加括号就可直接调用。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/187810.html