您是不是需要使用 __name__=__main__ 语句在 python 中运行任何脚本? [复制]

Posted

技术标签:

【中文标题】您是不是需要使用 __name__=__main__ 语句在 python 中运行任何脚本? [复制]【英文标题】:Do you need to use __name__=__main__ statement for running any script in python? [duplicate]您是否需要使用 __name__=__main__ 语句在 python 中运行任何脚本? [复制] 【发布时间】:2012-08-02 13:04:42 【问题描述】:

可能重复:What does if __name__=="__main__": do?What's the point of a main function and/or __name__ == "__main__" check in Python?

我只是想了解如果我们可以运行任何 python 脚本,即使不使用该语句,为什么还要使用 __name__='__main__'statement。 例如,我可以在不使用 if __name__='__main__' 语句的情况下运行下面的脚本。

def hello():
      print "hello"
      return 1234

# And here is the function being used
print hello()

【问题讨论】:

嗯,这不是您必须使用该语句的原因,而是您可能想要的原因。 你通常不希望导入模块产生副作用,比如让它对你运行一堆操作。 【参考方案1】:

这样做是为了让代码仅在作为脚本运行时执行,而不是在您导入模块时执行。

【讨论】:

【参考方案2】:

全局命名空间中的代码运行速度稍慢。制作main() 函数很容易,为什么不这样做呢?如果您不介意在导入模块时“运行”该模块,则它是可选的

【讨论】:

以上是关于您是不是需要使用 __name__=__main__ 语句在 python 中运行任何脚本? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

if __name__ == '__main__':

如何导入需要 __name__ == "__main__" 的脚本

Python中的构造“ if __name__ == '__main__'”

python中的if __name__ == '__main__' what hell is it?

if __name__=="__main__"作用

python基础模块的常用方法使用__name__ __file__ __doc__