我怎样才能在一个函数的开头注入代码?

问题描述 投票:0回答:1

我希望能够在给定函数的开始注入一段代码。

研究大多采用装饰提及,但我的具体使用情况下,我不希望有一个额外的函数调用来包装修饰功能。

我也无法将参数添加到功能 - 我有在运行时的已编译功能,仅此而已。

我之所以不希望使用一个包装,是因为我想编写一个程序库,它允许程序员“粘贴”的一段代码在已写入功能的开始,而无需添加另一个级别的调用栈在所有。主要是出于性能的考虑。

如何才能做到这一点?并且将它不同的Python版本工作不打破?

python metaprogramming code-generation code-injection
1个回答
1
投票

过早的优化是所有罪恶的根源。你不应该“简单地假设”的包装功能将产生重大影响性能。没有安全,简单,便携,这样做你在问什么。最适用的解决方案是一个自定义metaclass,因为它可以让你控制基于它的新对象的创建。

© www.soinside.com 2019 - 2024. All rights reserved.