Car*_*zón 5 python macros preprocessor
我习惯在C中定义宏(而不仅仅是常量)
#define loop(i,a,b) for(i=a; i<b; ++i)
#define long_f(a,b,c) (a*0.123 + a*b*5.6 - 0.235*c + 7.23*c - 5*a*a + 1.5)
Run Code Online (Sandbox Code Playgroud)
有没有一种方法在python中使用预处理而不是函数?
*通过预处理,我的意思是在运行代码之前会替换定义的出现(实际上不是整个代码,而是其余代码,因为既然它是代码的一部分,我想它将在运行时替换所有内容)。
如果有,值得吗?运行时间是否会有显着差异?
有办法吗?是的。总有办法。你应该这样做吗?可能不是。
只需定义一个可以执行您想要的功能的函数。如果您只是担心代码变得很长并且想要单行代码,则可以使用 lambda 函数。
long_f = lambda a,b,c: a*0.123 + a*b*5.6 - 0.235*c + 7.23*c - 5*a*a + 1.5
long_f(1,2,3) == 28.808
Run Code Online (Sandbox Code Playgroud)
当然,你的第一个例子在 Python 中已经更漂亮了。
for i in range(a,b):
...
Run Code Online (Sandbox Code Playgroud)
编辑:为了完整起见,我应该按要求回答问题。如果您绝对必须对 Python 代码进行预处理,那么您可以使用任何设计用于模板化网页等内容的编程语言。例如,我听说 PHP 被用于预处理代码。您编写代码而不是 HTML。当您想要预处理某些东西时,您可以使用 PHP 块。