对象的属性管理函数
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 = vdelattr(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'