谈谈Python 面向对象的编程中 的getattr函数
时间: 2024-02-19 13:57:23 浏览: 96
在 Python 面向对象的编程中,`getattr` 函数是一个内置函数,用于获取对象的属性值。通常情况下,我们可以通过 `.` 操作符来获取对象的属性值,例如 `obj.attr`。但是,有时候我们在编写代码时无法确定要获取的属性名,或者需要动态地获取属性值,这时候就可以使用 `getattr` 函数。
`getattr` 函数的语法如下:
```python
getattr(object, name[, default])
```
其中:
- `object`:要获取属性的对象。
- `name`:要获取的属性名,可以是字符串或变量。
- `default`:可选参数,如果指定的属性不存在,返回默认值。
下面是一个简单的例子,演示了如何使用 `getattr` 函数获取对象的属性值:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("John", 30)
name = getattr(p, "name") # 获取 p 对象的 name 属性值
age = getattr(p, "age") # 获取 p 对象的 age 属性值
gender = getattr(p, "gender", "Unknown") # 获取 p 对象的 gender 属性值,如果不存在,则返回默认值 "Unknown"
print(name) # John
print(age) # 30
print(gender) # Unknown
```
在上面的例子中,我们定义了一个 `Person` 类,并创建了一个 `p` 对象。然后,我们使用 `getattr` 函数获取了 `p` 对象的 `name` 和 `age` 属性值,以及 `gender` 属性值(由于 `p` 对象没有定义 `gender` 属性,因此返回默认值 "Unknown")。
总之,`getattr` 函数是 Python 中一个非常有用的内置函数,可以帮助我们动态地获取对象的属性值,提高代码的灵活性和可维护性。
阅读全文