#!/usr/bin/env python
# -*- coding:utf-8 -*-
class Example:
def __init__(self):
self.data = {'a': 1, 'b': 2, 'c': 3}
def __getattr__(self, name):
if name in self.data:
return self.data[name]
else:
raise AttributeError(f"'Example' object has no attribute '{name}'")
# 创建 Example 对象
obj = Example()
# 访问存在的属性
print(obj.a) # 输出: 1
print(obj.b) # 输出: 2
# 访问不存在的属性
print(obj.x) # 引发 AttributeError 异常,提示属性不存在
「类的进阶」属性访问时的 __getattr__、__getattribute__ 以及 __setattr__
最新推荐文章于 2024-09-29 14:13:49 发布