前言:
什么是描述符?
在Python中,描述符是对多个属性访问操作的方法集合的形式化。简而言之,描述符让你能够控制属性的访问、设置、删除等操作。Python的描述符是实现了特定协议的对象,这个协议包括__get__、__set__和__delete__方法。通过这些方法可以在属性访问时定义自定义行为,这为Python的属性访问提供了极高的灵活性。
1 描述符示例
假设我们想要定义一个类属性,这个属性在被访问时会打印日志。我们可以创建一个描述符来做这件事:
"""
# @Time : 2024/4/19
# @Author : Summer
# @File : Descriptor
# @describe:
"""
class LoggedAccess:
def __init__(self, name):
self.name = name
def __get__(self, instance, owner):
value = instance.__dict__[self.name]
print(f"Accessing {
self.name}, Value: {
value}")
return value
def __set__(self, instance, value):
print(f"Updating {
self.name}, New value: {
value}")
instance.__dict__[self.name] = value
# 使用描述符
class MyClass:
# 创建描述符实例
my_attr = LoggedAccess("my_attr")
def __init__

本文详细介绍了Python中的描述符,如何通过实现__get__,__set__,__delete__方法来控制属性的访问、设置和删除。文章还展示了描述符在类型检查、数据校验和缓存属性结果等场景的应用,并与Python内置的property进行比较,强调了描述符的灵活性和适用性。
最低0.47元/天 解锁文章
371

被折叠的 条评论
为什么被折叠?



