我正在编写.py文件,该文件将在第一个单元格中的某些IPython会话开始时定期导入,但也会从其他非交互式会话中导入,因为它包含可以在其中运行的函数在非交互模式下批处理。
它基本上是一个包含许多非常常见的类和函数的模块。
由于我正在使用带有--pylab=inline
选项的IPython,因此已经导入了numpy和matplotlib函数,但是当使用简单的python mymodule.py
批量运行时,必须专门导入numpy函数。
最后,我会在IPython会话期间提出双重导入,这是我不太喜欢的事情。
在这种情况下,最佳做法是什么?不是导入模块两次不好的做法吗?
答案 0 :(得分:4)
重复导入不是问题。无论在程序中导入模块多少次,Python都只运行一次代码,只生成模块的一个副本。第一个之后的所有导入仅仅引用已经加载的模块对象。如果您来自C ++背景,您可以想象所有模块都具有隐含的包含保护。