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'属性