Python hasattr() 、getattr()、setattr() 函数

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值