描述符是Python中控制属性访问的强大机制,它们定义了属性的获取、设置和删除行为。
python
class ValidatedProperty:
def __init__(self, min_val, max_val):
self.min_val = min_val
self.max_val = max_val
def __set_name__(self, owner, name):
self.name = name
def __set__(self, instance, value):
if not (self.min_val <= value <= self.max_val):
raise ValueError(f"Value must be between {self.min_val} and {self.max_val}")
instance.__dict__[self.name] = value
def __get__(self, instance, owner):
return instance.__dict__.get(self.name, None)
class Temperature:
celsius = ValidatedProperty(-273, 100)
def __init__(self, celsius):
self.celsius = celsius
# 只允许在合理温度范围内赋值
temp = Temperature(25) # 正常
# temp = Temperature(500) # 会引发异常
描述符为Python提供了一种优雅的方式来实现属性验证和计算属性。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。