python一定要有主函数_在python中,一个主函数和/或 __name__ == “__main__” 有什么意义?...

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:

What does do?

在python脚本中,我偶尔会注意到如下情况:

1

2if __name__ =="__main__":

# do stuff like call main()

这有什么意义?

在您阅读了Python文档中的相关内容之后,您可以问什么特定的问题?例如,请参见docs.python.org/library/python.html。在阅读完本节之后,您有哪些具体问题。

洛特:他的问题似乎很具体。他在问这种情况通常是为了什么…

副本:stackoverflow.com/questions/419163/what-do-if-namemain-do

昨晚我自己也在想这个问题。

@弗拉格斯沃斯:我看不出这是怎么"具体"的。"问题是开放的……"有什么意义?它们不能解决编程问题。另外,"要点"的答案在文档中。如果有一个更集中的问题,而不是文档的一部分,那就太好了。

这个问题的答案可以通过谷歌快速找到(可能比花时间输入问题更快)。我不明白为什么这个问题被否决了5次(到目前为止)。像这样的问题会产生很多噪音,只会复制现有信息,很容易找到。

好吧,好吧,我有罪(投票结束)。

让所有大量的python代码活在一个函数中(即不在模块顶层)是一个关键的性能优化,也是良好代码组织的一个重要因素(python编译器可以优化对函数中局部变量的访问,而不是优化实际上是模块全局变量的"局部"变量)。因为后者的语义要求更高)。

对函数的调用以当前作为"主脚本"运行的模块为条件(而不是从另一个模块导入),这可能会导致模块中包含的功能块的潜在可重用性(因为其他模块可能会导入它并只调用适当的函数或类),更重要的是,它支持可靠的单元测试(在模块功能执行和测试之前,通常需要设置外部子系统的所有实物模型和假模型)。

我再也不会把我所有的代码放在模块的顶层。谢谢您。

这对我来说是一个比拥有数千张选票更好的解释。我连这些例子都看不出这一点。谢谢!

这允许单独导入或运行python脚本是一种明智的方法。

如果直接运行python文件,那么__name__变量将包含__main__。如果导入的脚本不是这种情况。通常,如果导入要从文件调用函数或引用类的脚本。

如果没有进行此检查,则导入时将运行不在类或函数中的任何代码。

假设它在main.py中,这样其他文件可以import main包含"主"程序中的类和函数,但不运行源代码。

如果没有此条件,则当由其他脚本导入时,将执行全局范围内的代码。

这是一个进行模块测试的好地方。这只在直接从shell运行模块时运行,但如果导入,则不会运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值