@property 装饰器
property() 函数作用于新式类,返回属性值。
class C(object): def __init__(self): self._x = None def getx(self): print('get') return self._x def setx(self, value): print('set') self._x = value def delx(self): print('del') del self._x x = property(getx, setx, delx, "I'm the 'x' property.") # c = C() # c.x = 12 # print(c.x) # del c.x
@property 装饰器用的最多。把一个方法变成属性调用,那么我们在对实例属性操作的时候,就知道该属性很可能不是直接暴露的,而是通过getter和setter方法来实现的。
# @property 装饰器负责把一个方法变成属性调用 class Student(object): # 把一个getter方法变成属性,只需加上 @property @property def score(self): return self._score # 把一个setter方法变成属性,@fun.setter @score.setter def score(self, value): if not isinstance(value, int): raise ValueError('score must be an interger!') if value < 0 or value > 100: raise ValueError('score must between 0~100') self._score = value s = Student() s.score = 60 print(s.score)
class Parrot(object): def __init__(self): self._voltage = 100000 @property def voltage(self): """Get the current voltage.""" return self._voltage # setter,deleter,这些额外函数名和property相同 @voltage.setter def voltage(self, value): self._voltage = value @voltage.deleter def voltage(self): del self._voltage
参考:
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143186781871161bc8d6497004764b398401a401d4cce000
http://www.runoob.com/python/python-func-property.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2018-01-22 主成分分析案例
2018-01-22 主成分分析理论
2018-01-22 聚类分析应用
2018-01-22 聚类分析
2017-01-22 BestCoder Round #91 1002 Lotus and Horticulture
2017-01-22 BestCoder Round #91 1001 Lotus and Characters