就速度和内存效率而言,在函数内部导入Python模块和/或函数有什么优缺点?
它是否在每次运行该功能时重新导入,或者是否仅在运行一开始就重新导入一次?
每次运行该功能时都会重新导入吗?
没有; 确切地说,Python模块在每次导入时都会被缓存,因此导入第二(或第三或第四…)次实际上并不会迫使它们再次经历整个导入过程。1个
是否在开始时导入一次功能是否运行?
不可以,只有在执行函数时才导入。2,3
至于好处:我想这取决于。如果您可能很少运行某个函数并且不需要将模块导入其他地方,那么仅将其导入该函数 可能会 有所帮助。或者,如果存在名称冲突或其他原因,您不希望该模块或该模块中的符号在 任何地方都 可用,那么您可能只想将其导入特定功能中。(当然,from my_module import my_function as f这些情况总是存在的。)
from my_module import my_function as f
在一般实践中,它可能没有那么有益。实际上,大多数Python样式指南都鼓励程序员将所有导入内容放在模块文件的开头。