反射
【一】反射
【1】什么是反射
- 反射是一种程序可以访问、检测和修改其本身状态或行为的能力。
- 在 Python 中,反射主要指通过字符串的形式操作对象的属性。
【2】Python中的反射
- 通过字符串的形式操作对象相关的属性。
- python中的一切事物都是对象(都可以使用反射)
【二】反射方法
【1】反射方法介绍
- getattr(object, name[, default])
- 获取对象的属性值,如果属性不存在,可提供默认值。
- hasattr(object, name)
- 判断对象是否具有指定属性
- setattr(object, name, value)
- 设置对象的属性值
- delattr(object, name)
- 删除对象的属性
【2】反射方法使用
- hasattr(object,name)
- setattr(object,name)
class Person:
def __init__(self,name,age):
self.name=name
self.age=age
def run(self):
print(f'self.nameis running')
def func(self,name,age):
if hasattr:
return getattr(self,name,age)
else:
setattr(self,name,age)
print('设置完成')
print(self,name,age)
person=Person('hope',18)
# print(getattr(person,'name'))
# print(getattr(person,'age'))
# print(getattr(person,'run'))
# print(hasattr(person,'name'))
# print(hasattr(person,'age'))
def func(self, name, age):
if hasattr:
return getattr(self, name, age)
else:
setattr(self, name, age)
print('设置完成')
return func(self, name, age)
print(func(person, 'name', 'hope'))
-
delattr(object,name)
删除对象的属性
-
反射当前模块中的吃成员
【三】反射的好处
-
反射的好处就是,可以事先定义好接口,接口只有在被完成后才会真正执行,这实现了即插即用,这其实是一种‘后期绑定’,意味着可以在程序运行过程中动态地绑定接口的实现。
-
这种灵活性使得程序更容易扩展和维护