问题
如果我有import
语句嵌套在if/else
块中,我是否会提高效率?我知道一些语言在代码中“传递”了import
和语法问题。我只是不确定深入Python如何进入。什么时候Python导入?
我的假设
因为Python是解释而不是编译,通过嵌套else块中的import
陈述,这些库将不会被导入,直到达到该行,从而节省系统资源,除非另有需要。
方案
我写了会被更多的计算机知识都可以使用,而这些都是较小这么一个脚本。我的部门非常适合使用带参数的命令行来运行脚本,因此我已经设置好了它需要的参数,如果它没有找到它期望的参数,它将启动一个带有标题,按钮,和更详细的说明。但是,这意味着我正在导入仅在未提供参数的情况下使用的库。
其他信息
- 的GUI是非常,非常基本的(半打文本字段,并可能更少的按钮),所以我不关心只是创建和产卵自定义GUI类中必要的库会被导入。如果这变得更加复杂,我将在未来考虑它,甚至推动改变到网络界面。
- 我的脚本功能完全符合我的预期。问题只是关于资源消耗。
这听起来像是一个有效的假设,我假设如果else:被调用,你会导入somePackage,然后一旦使用了库,del somePackage清除资源。 – J0hn
@ J0hn:'del somePackage'不会清理任何东西;在第一次导入时,模块被缓存(所以后续导入不必重新导入),所以资源仍然保留。所有'del somePackage'都会删除一个引用。 – ShadowRanger
由于[另一个问题](https://stackoverflow.com/q/477096/364696)是关于延迟/按需输入的,我重新打开了这个,而这个是关于有条件的输入(公认是相似的)。我认为它应该被联系起来,但不能归类为重复。 – ShadowRanger