对象的属性管理函数

对象的属性管理函数

  • getattr(obj, name[, default])
    从一个对象用字符串name得到对象的属性,
    getattr(x,’y’) 等同于 x.y;
    当属性不存在时,如果给定default参数则返回default,如果没有给出default则触发一个AttributeError错误

  • hasattr(obj, name)
    用给定的name 字符串返回obj对否由此属性,此种做法可以避免在getattr(obj, name)时引发错误

  • setattr(obj, name, value)
    给对象obj的名为name的属性设置相应的值value, setattr(x, ‘y’, v)等同于x.y = v

  • delattr(obj, name)
    删除对象obj中的name属性 del(x, ‘y’)等同于 del x.y

示例:
在交互模式中:

>>> class Dog():
...     pass
... 
>>> d = Dog()
>>> setattr(d, 'color', '白色')
>>> # 等同于 d.color = '白色'
... 
>>> d.color
'白色'
>>> hasattr(d, 'color')
True
>>> hasattr(d, 'kinds')
False
>>> getattr(d, 'color')
'白色'

>>> getattr(d, 'kinds')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Dog' object has no attribute 'kinds'

>>> getattr(d, 'kinds', '没这个属性')
'没这个属性'
>>> getattr(d, 'color', '没这个属性')
'白色'
>>> 
>>> delattr(d, 'color')  # 等同于 del d.color
>>> d.color
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Dog' object has no attribute 'color'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值