有一个自己运行的循环脚本,现在我想在第一个脚本中添加另一个脚本,我在第一个文件的开头插入了一个var,如果是,则加载第二个模块。它有用,但我想知道他是不是一个好习惯?
if abilitaPippo == True:
try:
import Pippo
Pippoabilitato = True
except ImportError:
Pippoabilitato = False
else:
Pippoabilitato = False
答案 0 :(得分:1)
Python不是带有#ifdef
的C等等,因此,您应该避免条件包含代码。或者换句话说:你可以做到这一点,但不建议用Python练习。
相反,你应该弄清楚代码应该做什么,然后根据它编写它。例如,您可以将命令行标志传递给脚本,并根据传递的命令行标志使运行时行为发生变化。
在Python中说过,对于可能安装或未安装的模块,通常会有以下内容:
try:
import mymodule
except ImportError:
pass
答案 1 :(得分:1)
在全局范围内“做事”的Python模块变得脆弱,因为它们在导入时直接运行时的工作方式不同。同样在Python进程中,模块只会在第一次导入时“执行”一次。之后,import
检测到它已经加载,不需要做任何事情。
看看这个:http://plope.com/Members/chrism/import_time_side_effects
避免副作用也是典型Python习语的原因
if __name__ == '__main__':
main()
您将经常在命令行中运行的脚本中看到。从命令行运行时,__name__
全局变量是字符串' main ',但是当导入模块时,__name__
是模块的名称,所以没有是直接运行。