- 对象的属性管理函数:
- (1)
getattr(obj,name[,default]) #查看对象的name属性,有则返回
#属性,无则返回default
说明:
等同于obj.name
示例:
#此示例演示对象的getattr函数
class Dog:
pass
dog = Dog()
print(getattr(dog,'color',None))
print(getattr(dog,'color','没有此颜色属性'))
dog.color = 'white'
print(getattr(dog,'color',None))
print(getattr(dog,'kinds')) #无默认参数会正常报错
- (2)
hasattr(obj,name) #判断obj是否有name属性
说明:常用于getattr()前的判断,以免报错终止程序
示例:
#此示例演示对象的hasattr函数
class Dog:
pass
dog = Dog()
dog.color = 'white'
print(hasattr(dog,'color')) #True
print(hasattr(dog,'kinds')) #False
- (3)
setattr(obj,name,value) 给对象obj的名为name的属性设置为
相应的value,set(x,'y',v)等同于,x.y=v
示例:
class Dog:
pass
dog = Dog()
setattr(dog,'color','white') #等同于dog.color = 'white'
- (4)
delattr(obj,name) 删除对象obj中的name属性,delattr(x,'y')
等同于del x.y
示例:
class Dog:
pass
dog = Dog()
setattr(dog,'color','white')
print(getattr(dog,'color',None)) #white
delattr(dog,'color')
print(getattr(dog,'color',None)) #AttributeError
博客主要介绍了对象的属性管理函数,包含等同于obj.name的函数,还有常用于getattr()前判断以避免程序报错终止的函数,并给出了相关示例。

被折叠的 条评论
为什么被折叠?



