import myModule
myModule.main()
如果需要解析参数,则有两个选择:
将它们解析为main()
,但sys.argv
作为参数传递(以下所有代码均在同一模块中myModule
):
def main(args):
# parse arguments using optparse or argparse or what have you
if == ‘’: import sys main(sys.argv[1:])
现在,您可以导入myModule.main(['arg1', 'arg2', 'arg3'])
其他模块并从其他模块调用。
有main()
接受已经解析(中再次全部代码参数myModule
模块):
def main(foo, bar, baz='spam'):
# run with already parsed arguments
if == ‘’: import sys # parse sys.argv[1:] using optparse or argparse or what have you main(foovalue, barvalue, **dictofoptions)
然后导入并myModule.main(foovalue, barvalue, baz='ham')
在其他地方调用,并根据需要传入python参数。
这里的技巧是检测何时将模块用作脚本。当您运行python文件作为主脚本(python filename.py
)时,未import
使用任何语句,因此python调用该模块"__main__"
。但是,如果将相同的filename.py
代码视为模块(import filename
),则python会将其用作模块名称。在这两种情况下,__name__
都设置了变量,并针对该变量进行测试,以告诉您如何运行代码。