getattr setattr hasattr

今天对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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容