getattr、setattr、hasattr具体用法举例说明
时间: 2023-12-11 13:03:11 浏览: 117
详解Python的hasattr() getattr() setattr() 函数使用方法
5星 · 资源好评率100%
getattr函数用于获取对象的属性值,语法为:
```python
getattr(object, name[, default])
```
其中,object是需要获取属性值的对象,name是属性名,default是默认值(可选)。如果该对象存在指定属性,则返回属性值;如果不存在该属性,则根据default参数返回默认值或抛出AttributeError异常。举个例子:
```python
class Person:
name = 'Tom'
age = 18
p = Person()
print(getattr(p, 'name')) # 输出:Tom
print(getattr(p, 'gender', 'unknown')) # 输出:unknown
```
在上面的例子中,Person是一个类,p是Person类的一个实例。我们使用getattr函数获取了实例p的name属性值,以及gender属性(不存在)的默认值。
setattr函数用于设置对象的属性值,语法为:
```python
setattr(object, name, value)
```
其中,object是需要设置属性值的对象,name是属性名,value是属性值。如果该对象已存在指定属性,则更新属性值;如果不存在该属性,则创建该属性并设置属性值。举个例子:
```python
class Person:
name = 'Tom'
age = 18
p = Person()
setattr(p, 'age', 20)
setattr(p, 'gender', 'male')
print(p.age, p.gender) # 输出:20 male
```
在上面的例子中,我们使用setattr函数分别设置了实例p的age和gender属性值。
hasattr函数用于检查对象是否存在指定属性,语法为:
```python
hasattr(object, name)
```
其中,object是需要检查的对象,name是属性名。如果该对象存在指定属性,则返回True;否则返回False。举个例子:
```python
class Person:
name = 'Tom'
age = 18
p = Person()
print(hasattr(p, 'name')) # 输出:True
print(hasattr(p, 'gender')) # 输出:False
```
在上面的例子中,我们使用hasattr函数分别检查了实例p的name和gender属性是否存在。
阅读全文