张芷铭的个人博客

元编程将代码视为数据操作,实现代码生成、修改与分析,提升灵活性与复用性。

核心概念

技术说明示例
反射运行时检查和修改自身结构Python getattrsetattr
编译时/预处理阶段代码替换C 预处理器宏
模板编译时生成类型化代码C++ 模板

发展脉络

Lisp 以"代码即数据"理念和强大宏系统成为元编程典范。现代语言普遍支持:C++ 模板元编程、Python 装饰器与反射、Java 注解处理器等。

典型应用

  • 代码生成:自动生成重复代码,减少手工编码
  • DSL 构建:创建领域特定语言,提高表达能力
  • 性能优化:编译时生成高效代码,减少运行时开销

Python 装饰器示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
def my_decorator(func):
    def wrapper():
        print("Before function call")
        func()
        print("After function call")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

say_hello()

装饰器在函数调用前后注入额外行为,体现元编程动态修改函数行为的能力。

相关笔记

[[Python装饰器]]

Comments