反射
【一】反射
【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)
删除对象的属性
-
反射当前模块中的吃成员
【三】反射的好处
-
反射的好处就是,可以事先定义好接口,接口只有在被完成后才会真正执行,这实现了即插即用,这其实是一种‘后期绑定’,意味着可以在程序运行过程中动态地绑定接口的实现。
-
这种灵活性使得程序更容易扩展和维护
合集:
python高级
, python 面向对象
标签:
Python 面向对象
, python进阶
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异