Python最佳实践导入模块

时间:2013-11-15 20:17:09

标签: python import module

有一个自己运行的循环脚本,现在我想在第一个脚本中添加另一个脚本,我在第一个文件的开头插入了一个var,如果是,则加载第二个模块。它有用,但我想知道他是不是一个好习惯?

if abilitaPippo == True:
    try:
        import Pippo
        Pippoabilitato = True
    except ImportError:
        Pippoabilitato = False
else:
    Pippoabilitato = False

2 个答案:

答案 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__是模块的名称,所以没有是直接运行。