getattr setattr hasattr
2018-10-30 本文已影响0人
Garfield猫
今天对Python中getattr()、setattr()和hasattr()三个函数做一个简单的总结。
getattr()
描述
getattr()函数用于返回一个对象属性值。
语法
getattr(object, name[, defalut])
参数
- object -- 对象
- name -- 字符串,对象属性
- default -- 默认返回值,如果不提供参数,在没有对应属性时,将触发 AttributeError
返回值
返回对象属性值。
实例
class A(object):
bar = 1
a = A()
getattr(a, 'bar') # 获取属性bar值,应该返回1
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
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