在 Alex Martelli 对 Making a Python script Object-Oriented 的回复中,他提到在 Python 中将模块级代码放入一个函数然后调用该函数会更快。有人可以解释为什么以及它是否适用于所有 Python 实现?
最佳答案
这主要是由于变量查找。在全局范围内查找变量需要字典查找。相反,编译器静态地确定局部名称并通过索引引用它们,因此不需要查找字典。
请注意,在 Python 2.x 中,函数内存在 exec
语句将停用此优化,因为名称无法再静态确定。在 Python 3.x 中,exec()
是一个常规函数,因此不允许更改局部范围内的变量。
关于python - 为什么将模块级代码放入一个函数中,然后在 Python 中调用该函数会更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8053608/