这只是一个功能。导入并调用它:
import myModule
myModule.main()
如果需要解析参数,则有两个选项:
>在main()中解析它们,但以sys.argv作为参数传递(所有代码在同一模块myModule中):
def main(args):
# parse arguments using optparse or argparse or what have you
if __name__ == '__main__':
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 __name__ == '__main__':
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代码视为模块(导入文件名),则python会将其用作模块名称。在这两种情况下,都会设置变量__name__,并针对该测试告诉您代码的运行方式。