有一个自行运行的循环脚本,现在我想在第一个脚本中添加另一个脚本,我在第一个文件的开头插入了一个 var ,如果它是 true 则加载第二个模块。它有效,但我想知道他是否是一个好的做法?
if abilitaPippo == True:
try:
import Pippo
Pippoabilitato = True
except ImportError:
Pippoabilitato = False
else:
Pippoabilitato = False
最佳答案
在全局范围内“执行操作”的 Python 模块变得脆弱,因为它们在直接运行时与导入时的工作方式不同。同样,在 Python 进程中,模块只会“执行”一次 - 在第一次导入时。之后,import
检测到它已经加载并且不需要执行任何操作。
看看这个:http://plope.com/Members/chrism/import_time_side_effects
这种对副作用的避免也是典型 Python 习惯用法的原因
if __name__ == '__main__':
main()
您经常会在从命令行运行的脚本中看到它。从命令行运行时,__name__
全局变量是字符串“main”,但是当导入模块时,__name__
是名称模块的,所以没有任何东西可以直接运行。
关于Python 导入模块最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20009855/