Python 类与常见协议深入解析
1. 异常处理与属性操作
在 Python 中,处理属性操作时,异常处理至关重要。例如,在自定义属性字典时,以下代码展示了属性的获取、设置和删除操作:
class AttributeDict:
def __getitem__(self, name):
return self[name]
def __setattr__(self, name, value):
self[name] = value
def __delattr__(self, name):
del self[name]
d = AttributeDict(spam='eggs')
print(d['spam']) # 输出: eggs
print(d.spam) # 输出: eggs
d.spam = 'ham'
print(d.spam) # 输出: ham
del d.spam
try:
print(d.spam)
except KeyError as e:
print(f"KeyError: {e}")
需要注意的是,当属性不存在时,应抛出 AttributeError 而非 KeyError ,因为大多数代码会显式捕获特定类型的异常,抛出错误类型的异常可能导致其他代码执行错误路径。
2. 字符串表示
2.1 __str__() 方法
在 Pytho
超级会员免费看
订阅专栏 解锁全文
71万+

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



