Purpose of 'if __name__ == “__main__”:'
本问题已经有最佳答案,请猛点这里访问。
我试图理解我发现的一些代码,这些代码读取命令行参数(附在下面)。我担心的是,
为什么我要用这一行而不只是使用下面的代码,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import sys, getopt def main(argv): inputfile = '' outputfile = '' try: opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="]) except getopt.GetoptError: print 'test.py -i <inputfile> -o <outputfile>' sys.exit(2) for opt, arg in opts: if opt == '-h': print 'test.py -i <inputfile> -o <outputfile>' sys.exit() elif opt in ("-i","--ifile"): inputfile = arg elif opt in ("-o","--ofile"): outputfile = arg print 'Input file is"', inputfile print 'Output file is"', outputfile if __name__ =="__main__": main(sys.argv[1:]) |
好吧,假设有人想在自己的程序中使用模块中的函数。它们导入您的模块…它开始做自己的事情!
对于
(正如@sheng提到的,为了测试的目的,您可能需要将模块导入到另一个脚本中。)
这是判断Python模块是作为脚本执行还是从另一个模块导入的惯用方法。如果文件是作为脚本执行的(也就是说,它是主模块),则只需输入
python中的
如果导入,则不会执行该
用于单元测试建议。
如果您直接运行这个脚本,它将执行
它类似于Java中的主要功能。在每一个Java类中,都可以有一个单元测试的主函数。但是类是作为模块导入/使用的,不会执行主函数。
通常,如果您直接使用这个脚本,它将运行