我发现了一种新的模式。这种模式是众所周知的吗?或者对此有什么看法?
基本上,我很难上下清理源文件来找出哪些模块导入是可用的等等,所以现在,不是
import foo
from bar.baz import quux
def myFunction():
foo.this.that(quux)
我将所有的导入移到实际使用它们的函数中,如下所示:
def myFunction():
import foo
from bar.baz import quux
foo.this.that(quux)
这做了几件事。首先,我很少意外地用其他模块的内容污染我的模块。我可以为模块设置__all__
变量,但是随着模块的发展,我必须更新它,这对实际存在于模块中的代码的名称空间污染没有帮助。
其次,我很少在我的模块顶部有一长串的导入,其中一半或更多我不再需要,因为我已经重构了它。最后,我发现这个模式更容易阅读,因为每个引用的名称都在函数体中。
https://stackoverflow.com/questions/477096
复制相似问题