hasattr() 函数
描述:
hasattr() 函数用于判断对象是否包含对应的属性。
语法:
hasattr(object, name)
参数:
- object – 对象
- name – 字符串,属性名。
返回值:
如果对象有该属性,则返回True, 否则返回False.
实例:
class Coordinate:
x = 10
y = -5
z = 0
point1 = Coordinate()
print(hasattr(point1, 'x'))
print(hasattr(point1, 'y'))
print(hasattr(point1, 'z'))
print(hasattr(point1, 'no')) # 没有该属性
结果:
True
True
True
False
getattr()函数
描述:
getattr() 函数用于返回一个对象属性值。
语法:
getattr(object, name[, default])
参数:
- object – 对象
- name – 字符串,对象属性
- default – 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError
返回值:
返回对象属性值
实例:
class A(object):
bar = 1
a = A()
getattr(a, 'bar') # 获取属性 bar 值
>>> 1
getattr(a, 'bar2') # 属性 bar2 不存在,触发异常
>>> Traceback (most recent call last):
>>> File "<stdin>", line 1, in <module>
>>> AttributeError: 'A' object has no attribute 'bar2'
getattr(a, 'bar2', 3) # 属性 bar2 不存在,但设置了默认值
>>> 3
setattr() 函数
描述:
setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。
语法:
setattr(object,name,value)
参数:
- object – 对象
- name – 字符串,对象属性
- value – 属性值
返回值:
无
实例:
对已存在的属性进行赋值:
class A(object):
bar = 1
a = A()
getattr(a, 'bar') # 获取属性 bar 值
>>> 1
setattr(a, 'bar', 5) # 设置属性 bar 值
a.bar
>>> 5
如果对象不存在会创建一个对象,并进行赋值:
class A():
name = "runoob"
a = A()
setattr(a, "age", 28)
print(a.age)
>>> 28