python模块级可执行命令

时间:2017-04-28 05:16:48

标签: python python-3.x module startup

在python中,可执行语句(whileprintstatic等)可以放在模块中 - 不包含在函数内。

C ++ 中,我将命令包装在一个函数中。只有initialization变量初始化才能“执行”IIRC。

Pascal 中,我使用x = 1 # similar to c++ static variable init #unwrapped print(1 if x == 1 else 2) #wrapped def initialization(): print(1 if x == 1 else 2) initialization() 部分。

这是一个python示例,显示了两种执行模块级命令的方式(解包和包装)。

我很想知道是否存在任何情况,即无法修改带有解包命令的现有模块以使用包裹样式(可能与全局/非本地声明有关?)。

{{1}}

1 个答案:

答案 0 :(得分:0)

通常在python中,除非模块非常简单,并且只在从命令行运行时才做一件事和一件事,所以模块在底部有一个看起来像这样的块:

if __name__ == '__main__':
    # run the main function here
    main()

这样,当导入模块时,他们通常不会开始做事,而通常意图是使用他们的函数,变量和类。

我不确定这是否能回答你的问题;我不知道有什么办法来包装模块顶层的语句,除了将与模块应该执行的操作有关的语句分离成相关的函数,并将初始化代码移动到& #34;主"函数,并使用上面的块在模块运行时触发它python yourmodule.py