将 每个 导入文件放在文件顶部是最常见的样式。PEP 8推荐使用它,这是开始使用它的一个很好的理由。但这不是一时兴起,它具有优势(尽管不够重要,不足以使其他一切都构成犯罪)。它允许一目了然地找到所有导入,而不是浏览整个文件。它还确保在执行任何其他代码(可能取决于某些导入)之前导入所有内容。NameError
s通常很容易解决,但是可能很烦人。
通过将模块保持在较小的范围内,不会避免(显着)命名空间污染,因为您添加的只是实际的模块(不,import *
不计数,并且无论如何也不应使用)。在函数内部,您将在每次调用时再次导入(这并不是很有害,因为所有内容都被导入一次,但是是不需要的)。