美文网首页
getattr setattr hasattr

getattr setattr hasattr

作者: Garfield猫 | 来源:发表于2018-10-30 18:57 被阅读0次

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

相关文章

网友评论

      本文标题:getattr setattr hasattr

      本文链接:https://www.haomeiwen.com/subject/fchntqtx.html