python - 为什么将模块级代码放入一个函数中,然后在 Python 中调用该函数会更快?

标签 python function optimization module

在 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/

相关文章:

python - 什么是 .在 Python 中的 import 语句中是什么意思?

javascript - JS 函数声明不应放在 block 中

javascript - Javascript中有重复声明优化吗?

python - 求列表中三个和的个数

python - 有没有办法用 matplotlib 将 3D 线绘制为一系列圆圈?

Python多处理内存使用

函数构成 AND 函数应用

php - 在 mysql 中使用 strpos?

c++ - 优化的 float 模糊变化

java - 根据 id 和日期以最少的对象数量获取种子