getattr() in Python
时间: 2024-02-07 07:03:46 浏览: 19
在Python中,`getattr()` 是一个内置函数,用于获取对象的属性或方法。
`getattr()` 函数有三个参数:
* `obj`:表示对象,可以是任何Python对象,包括模块、类、实例等。
* `name`:表示属性或方法的名称,可以是字符串类型。
* `default`(可选):表示如果对象中没有找到指定属性或方法时返回的默认值。
如果对象中存在指定的属性或方法,则该函数将返回对应的值或函数对象。如果对象中不存在指定的属性或方法,则该函数将引发 `AttributeError` 异常(如果没有提供默认值的话)或返回指定的默认值。
下面是一个简单的使用示例:
```python
class MyClass:
def __init__(self, value):
self.value = value
def my_method(self):
print("Hello, World!")
obj = MyClass(42)
value = getattr(obj, 'value')
print(value) # 输出:42
method = getattr(obj, 'my_method')
method() # 输出:Hello, World!
default_value = getattr(obj, 'nonexistent_attribute', 'default')
print(default_value) # 输出:default
```
在这个示例中,我们定义了一个名为 `MyClass` 的类,并创建了一个名为 `obj` 的实例。我们使用 `getattr()` 函数从 `obj` 中获取 `value` 属性和 `my_method` 方法,并分别将它们存储在 `value` 和 `method` 变量中。然后我们调用 `my_method()` 方法,它将输出 "Hello, World!"。最后,我们使用 `getattr()` 函数获取一个不存在的属性,并提供了一个默认值,这将返回指定的默认值 "default"。