元编程将代码视为数据操作,实现代码生成、修改与分析,提升灵活性与复用性。
核心概念
| 技术 | 说明 | 示例 |
|---|---|---|
| 反射 | 运行时检查和修改自身结构 | Python getattr、setattr |
| 宏 | 编译时/预处理阶段代码替换 | C 预处理器宏 |
| 模板 | 编译时生成类型化代码 | C++ 模板 |
发展脉络
Lisp 以"代码即数据"理念和强大宏系统成为元编程典范。现代语言普遍支持:C++ 模板元编程、Python 装饰器与反射、Java 注解处理器等。
典型应用
- 代码生成:自动生成重复代码,减少手工编码
- DSL 构建:创建领域特定语言,提高表达能力
- 性能优化:编译时生成高效代码,减少运行时开销
Python 装饰器示例
| |
装饰器在函数调用前后注入额外行为,体现元编程动态修改函数行为的能力。
相关笔记
[[Python装饰器]]
张芷铭的个人博客
Comments