getattr setattr hasattr

2018-10-30  本文已影响0人  Garfield猫

今天对Python中getattr()setattr()hasattr()三个函数做一个简单的总结。


getattr()

描述

getattr()函数用于返回一个对象属性值。

语法

getattr(object, name[, defalut])

参数

返回值

返回对象属性值。

实例

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)

参数

返回值

无。

实例

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)

参数

返回值

如果对象有该属性返回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

上一篇下一篇

猜你喜欢

热点阅读