pyhon反射

一:反射

1.python面向对象中的反射:

通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射)

2.四个内置方法

hasattr 检测是否含有某属性

getattr 获取属性

setattr 设置属性

delattr 删除属性

3.四个方法适用于类和对象(一切皆对象,类本身也是对象)

class People:
country = "china"
def init(self,name,age):
self.name = name
self.age = age

def tell_info(self):
    print(self.name,self.age)

obj = People('egon',18)

二:hasattr 检测是否含有某属性

1.判断obj这个对象有没有country这个属性
print(hasattr(obj,"country")) # obj.country 也可以说obj能不能点出.country

三:getattr 获取属性

1.通过字符串country获取属性
res = getattr(obj,'country') # china 拿到属性值
print(res)
2.通过字符串tell_info获取绑定方法
res = getattr(obj,'tell_info')
print(res)
3.调method方法获取到的是obj的信息
method = getattr(obj,'tell_info')
metsetattrhod()

四:setattr 设置属性

1.通过字符串xxx赋给新的属性值
setattr(obj,"xxx",1111) # 等同于obj.xxx = 1111
print(obj.xxx)

五:delattr 删除属性

delattr(obj,"name")
print(obj.name)

你可能感兴趣的:(pyhon反射)