python getattr用法
时间: 2024-12-17 10:51:12 浏览: 8
`getattr` 是 Python 中的一个内置函数,用于获取对象的属性值。它的基本用法如下:
```python
getattr(object, name[, default])
```
- `object`: 要获取属性的对象。
- `name`: 字符串形式的属性名。
- `default`(可选):如果指定的属性不存在,则返回该默认值。如果不提供此参数且属性不存在,则会抛出 `AttributeError` 异常。
下面是一些使用 `getattr` 的示例:
### 示例 1:基本用法
```python
class MyClass:
def __init__(self):
self.attribute = "Hello, World!"
obj = MyClass()
print(getattr(obj, 'attribute')) # 输出: Hello, World!
```
### 示例 2:使用默认值
```python
class MyClass:
def __init__(self):
self.attribute = "Hello, World!"
obj = MyClass()
print(getattr(obj, 'non_existent_attribute', 'Default Value')) # 输出: Default Value
```
### 示例 3:处理不存在的属性时抛出异常
```python
class MyClass:
def __init__(self):
self.attribute = "Hello, World!"
obj = MyClass()
try:
print(getattr(obj, 'non_existent_attribute')) # 这将抛出 AttributeError 异常
except AttributeError as e:
print(f"Caught an exception: {e}")
```
### 示例 4:动态访问方法
```python
class MyClass:
def greet(self):
return "Hello, World!"
obj = MyClass()
method = getattr(obj, 'greet')
print(method()) # 输出: Hello, World!
```
通过这些示例,你可以看到 `getattr` 在动态访问对象属性和方法时非常有用。它可以帮助你编写更灵活和通用的代码。
阅读全文