python中包含内置函数getattr()、setattr()和hasattr(),用于对象的属性操作:
getattr(object, name) # 获取对象的属性值
setattr(object, name, value) # 设置对象的某一个属性值,这个属性可以是不存在的
hasattr(object, name) #判断对象是否包含某一属性,包含返回True,不包含返回False
1. getattr()
# -*-coding:GBK -*- # -*-coding:utf-8-*- '''python内置函数getattr() 功能:用于返回一个对象的某一个属性值 参数: object--对象, name--对象属性名称,字符串, value--返回值,对象某一属性的值 语法:value = getattr(object, name) ''' class A(object): bar = 1 def sum(self, x, y): return(x+y) a = A() value = getattr(a, 'bar') print(value) result = getattr(a, 'sum') # 获取对象的sum属性是一个函数,因此result是一个函数对象 print(result(2, 3))
2. setattr()
# -*-coding:GBK -*- # -*-coding:utf-8-*- '''python内置函数setattr() 功能:设置某一个对象的属性值,该属性不一定是存在的 参数: object--对象, name--对象属性名称,字符串, value--对象某一属性的值 无返回值 语法:setattr(object, name, value) ''' class A(object): bar = 1 def sum(self, x, y): return(x+y) a = A() print(a.bar) # 类中定义的初始值 setattr(a, 'bar', 100) print(a.bar) # setattr之后的属性值 setattr(a, 'name', 'John') # 获取对象的sum属性是一个函数,因此result是一个函数对象 print(a.name)
3. hasattr
# -*-coding:GBK -*- # -*-coding:utf-8-*- '''python内置函数hasattr() 功能:判断对象是否包含某一属性 参数: object--对象, name--对象属性名称,字符串, 返回值布尔型,True or False 语法:hasattr(object, name) ''' class A(object): bar = 1 def sum(self, x, y): return(x+y) a = A() print(hasattr(a, 'bar')) # 判断对象中是否存在'bar'属性 print(hasattr(a, 'sum')) # 判断对象中是否存在'sum'属性 print(hasattr(a, 'bar1')) # 判断对象中是否存在'bar1'属性