Python Property类
学习openpyxl 操作Excel时:
sheet_names = wb.get_sheet_names() 提示: DeprecationWarning: Call to deprecated function get_sheet_names (Use wb.sheetnames).
函数废弃,请使用对象点的方式,于是看了源码,才发现装饰器修饰函数返回属性值
- 对象.属性触发getter
- 对象.属性 = 属性值 触发setter
- del 对象.属性 触发deleter
官方文档:
"""
Property attribute.
fget
function to be used for getting an attribute value
fset
function to be used for setting an attribute value
fdel
function to be used for del'ing an attribute
doc
docstring
Typical use is to define a managed attribute x:
class C(object):
def getx(self): return self._x
def setx(self, value): self._x = value
def delx(self): del self._x
x = property(getx, setx, delx, "I'm the 'x' property.")
Decorators make defining new properties or modifying existing ones easy:
class C(object):
@property
def x(self):
"I am the 'x' property."
return self._x
@x.setter
def x(self, value):
self._x = value
@x.deleter
def x(self):
del self._x
"""
案例:
class A(object):
def __init__(self):
self._age = 18
@property
def age(self):
print('getter run ...')
return self._age
@age.setter
def age(self, age):
print('seter run...')
self._age = age
@age.deleter
def age(self):
print('del run ...')
del self._age
输出:
getter run ...
18
seter run...
getter run ...
18
del run ...
Process finished with exit code 0
本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/15788773.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!