在Python中,__getattr__
是一个特殊的方法,用于处理访问不存在的属性时的行为。它通常在类中被重写,以便在属性访问失败时提供自定义的处理逻辑。
__getattr__
的使用
1. 基本用法
__getattr__
方法在访问类实例的某个不存在的属性时自动调用。其签名如下:
def __getattr__(self, name):
# 自定义处理逻辑
pass
self
:指向实例对象本身。name
:要访问的不存在的属性的名称。
2. 示例
以下是一个简单的示例,展示如何使用__getattr__
:
class MyClass:
def __init__(self, existing_attribute):
self.existing_attribute = existing_attribute
def __getattr__(self, name):
return f"The attribute '{
name}' does not exist"
# 创建对象
obj = MyClass("Hello")
# 访问存在的属性
print(obj.existing_attribute) # 输出: Hello
# 访问不存在的属性
print(obj.non_existent_attribute)