Why is it uncommon for import statements to be placed inside functions?
本问题已经有最佳答案,请猛点这里访问。
我正在维护一些python包,在依赖性不完全满足的系统上,可能会因全局范围导入而失效的功能:
1 2 3 4 5 6 7 8 9 | import numpy as np def lala(in): out = max(in) return out def fufu(in): out = np.mean(in) return out |
例如,这里我不能使用
在函数范围内几乎从不进行导入有什么原因吗?这是因为减少了生产线的数量吗?
Is there any reason why imports are almost never done in function scope?
原因是您通常希望尽早检测到错误。一个函数只能在一段时间后调用,所以在函数内部导入时,您可以有一个似乎可以工作的程序,但在运行时的某个时刻失败。当这些失败经过长时间的计算后,或者在客户的网站上进行生产时,这些失败是特别坏的消息,最好避免。
如果功能设计为可选,则上述内容不适用。在这种情况下,在函数内部导入是非常合适的,可能需要捕获