装饰器的求值、调用顺序与元数据能力为何不能混为一谈
简答题困难452 次浏览
参考答案与解析
# 核心结论
装饰器的表达式求值、装饰器函数调用和实例创建是不同阶段,不能用一句笼统的“从下往上执行”概括全部行为。分析具体代码时,必须先确定项目采用的装饰器体系和编译配置,再区分装饰器应用于类、方法、访问器、字段还是参数。装饰器能够登记或修改的内容取决于其目标及约定;元数据能力则来自显式记录、编译器输出和运行时支持,并不是装饰器天然拥有的完整反射类型系统。
# 底层机制
多个装饰器工厂通常先按源码出现顺序求值,以获得待应用的装饰器函数;随后装饰器函数再按照对应体系规定的顺序应用。因此,工厂中的日志与装饰器函数体中的日志可能呈现不同顺序。类定义阶段完成这些处理后,调用构造器创建实例才会执行实例字段初始化和构造逻辑。若忽
