作者:Mister-Sky_724 | 来源:互联网 | 2023-07-29 20:14
我的印象是,如果直接运行模块,则执行仅在name’main’下面的代码.但是,我在该语句上面看到一行mrMapReduct.MapReduce()?如何执行,以及将其置于if子句之
我的印象是,如果直接运行模块,则执行仅在name =’main’下面的代码.但是,我在该语句上面看到一行mr = MapReduct.MapReduce()?如何执行,以及将其置于if子句之上的原因是什么?
import MapReduce
import sys
"""
Word Count Example in the Simple Python MapReduce Framework
"""
mr = MapReduce.MapReduce()
if __name__ == '__main__':
inputdata = open(sys.argv[1])
mr.execute(inputdata, mapper, reducer)
解决方法:
文件中的所有内容都会被执行,但是你在__name__ ==’__ main__’之上放置的大部分内容只是函数或类定义 – 执行这些只是定义一个函数或类,并且不会产生任何明显的副作用.
例如,如果将print语句放在这些定义之外的文件中,您将看到一些输出.