在Perl中,等同于Python的if __name__ == '__main__'的写法是:
if __name__ == '__main__'
if ($0 eq __FILE__) { # 这里放置主程序代码 }
这个条件判断表示,只有在当前脚本作为主程序运行时,才会执行大括号中的代码。在Perl中,$0表示当前正在执行的程序的文件名,__FILE__表示当前文件的文件名。
$0
__FILE__
在Perl中,这种写法通常用于在一个脚本中编写多个函数或模块时,避免在作为模块导入时执行主程序代码。
简单来说就是这是一个 IF 语句,这个 IF 判断后面的话,如果你的 Python 程序是直接运行的话,将会被执行,如果是作为导入模块的话,将不会被执行。...在理解上面的话之前,你可能需要参考下帖子:Python 的特殊变量 __name__ 中的内容。在上面的链接中解释了特殊变量 __name__ 的作用。...这样理解就好了,__name__ 这个变量就是一个标识 Python 程序的全局变量。...我们都知道 Python 是没有 main() 函数的,所以如果在一个 Python 程序运行的时候,我们可能希望对使用的变量进行一些定义,如果使用模块运行的时候,可能不需要这个步骤。...因为这个步骤可能会干扰作为模块运行时候提供的函数。 if __name__ == "__main__" 最最简单的解释就是起到了一个开关的作用。通常用于在作为程序运行的时候进行一些初始化操作。
原文地址:http://www.jb51.net/article/51892.htm 侵删 很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\'...这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = '__main__' 的作用,到底干嘛的?...下面举例说明: 先写一个模块: #module.py def main(): print "we are in %s"%__name__ if __name__ == '__main__': main...总结一下: 如果我们是直接执行某个.py文件的时候,该文件中那么”__name__ == '__main__'“是True,但是我们如果从另外一个.py文件通过import导入该文件的时候,这时__name...这个功能还有一个用处:调试代码的时候,在”if __name__ == '__main__'“中加入一些我们的调试代码,我们可以让外部模块调用的时候不执行我们的调试代码,但是如果我们想排查问题的时候,直接执行该模块文件
对于Python初学者来说,在看别人代码时经常会看到if __name__ == "__main__",这时心里就开始吐槽:“绝对又是装X,我特么不写这句话,代码不照样跑得好好的!...我刚开始碰到这行代码时,心里也是这样想的! 吐槽归吐槽,存在必然有存在的道理。现在就来看看这句代码到底是个啥意思,因为这句话能够帮你对Python模块的理解上一个层次。...说人话就是,如果你直接运行该模块,那么__name__ == "__main__";如果你 import 一个模块,那么模块name 的值通常为模块文件名。...,然后判断__name__ 是否等于 __main__,如果等于,有打印,反之则反,现在运行该模块,结果为: hello, world! 说明__name__ 等于 __main__。...,说明__name__ 不等于 __main__。
看过很多python的code都有这段代码: 1 2 if __name__ == '__main__': statements 这段代码的主要作用主要是让该python文件既可以独立运行...当导入到其他的脚本文件的时候,此时__name__的名字其实是导入模块的名字,不是'__main__', main代码里面的就不执行了。...比如有这样的一个文件test.py, 里面代码如下: 1 2 3 4 5 6 7 # test.py def test(): print("Test function....if __name__ == '__main__': test() 当按F5的时候可以独立运行程序,结果: 1 2 3 >>> ============================...在这个例子里面mygame.py里面调用square函数的时候,就不会执行mymath.py里面的main函数了。 伪python爱好者,正宗测试实践者。
Python中if __name__ == "__main__": 的作用 在很多python脚本中在最后的部分会执行一个判断语句if __name__ == "__main__:",之后还可能会有一些执行语句...那添加这个判断的目的何在? 在python编译器读取源文件的时候会执行它找到的所有代码,而在执行之前会根据当前运行的模块是否为主程序而定义变量__name__的值为__main__还是模块名。...因此,该判断语句为真的时候,说明当前运行的脚本为主程序,而非主程序所引用的一个模块。...这在当你想要运行一些只有在将模块当做程序运行时而非当做模块引用时才执行的命令,只要将它们放到if __name__ == "__main__:"判断语句之后就可以了。...into another module") 当运行python one.py,输出: top-level in one.py one.py is being run directly 当运行python
Python 程序文件的执行从第一条语句开始。 Python 包含名为__name__的特殊变量,该变量包含作为字符串执行的代码的范围。__main__是顶层代码执行的顶层作用域的名称。...Python Shell >>>__name__'__main__' Copy 所有的功能和模块都将在解释器 Shell 的顶层范围__main___内执行。...Python Shell >>> def f1(): print(__name__)>>> f1() Copy 甚至内部功能都是在顶层范围__main__内执行的: Python Shell >...__ Copy 一个 Python 文件可以包含多个可以独立执行的函数和语句。...因此,name的值允许 Python 解释器确定模块是否是可执行脚本。如果其值为main,将执行函数定义之外的语句。如果没有,模块的内容将被填充到顶层模块(或解释器名称空间)中,而不包含可执行部分。
先给出结论,对该语句用法简单的解释就是:如果if __name__ == '__main__' 所在模块是被直接运行的,则该语句下代码块被运行,如果所在模块是被导入到其他的python脚本中运行的,则该语句下代码块不被运行...其中C 和 C++ 都需要有一个 main 函数来作为程序的入口,也就是程序的运行会从 main 函数开始。同样的,Java 和 C# 则必须要有一个包含 Main 方法的主类来作为程序入口。...另外我们知道,python文件有两种使用方法: 第一种:直接作为脚本执行 第二种:import到其他的python脚本中被调用(模块重用)执行,也就是作为模块(库)被导入执行 不管是直接运行还是导入,最顶层的代码都会被运行...if __name__ == '__main__'就相当于是 Python 模拟的程序入口。Python 本身并没有规定这么写,这只是一种编码习惯。...由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个。到底哪个入口程序被选中,这取决于__name__的值。而__name__是内置变量,用于表示当前模块的名字。
不管是导入还是直接运行,最顶层的代码都会被运行(Python 用缩进来区分代码层次)。而实际上在导入的时候,有一部分代码我们是不希望被运行的。 ...举一个例子来说明一下,假设我们有一个 const.py 文件,内容如下: PI = 3.14 def main(): print "PI:", PI main() 我们在这个文件里边定义了一些常量...然后我们直接执行该文件(python const.py),输出: PI: 3.14 现在,我们有一个 area.py 文件,用于计算圆的面积,该文件里边需要用到 const.py 文件中的 PI 变量...__name__ __name__ 是内置变量,用于表示当前模块的名字,同时还能反映一个包的结构。...__main__.py 文件与 python -m Python 的 -m 参数用于将一个模块或者包作为一个脚本运行,而 __main__.py 文件则相当于是一个包的”入口程序“。
原文链接:https://zhuanlan.zhihu.com/p/34112508 作者: 菜鸟分析 相信初学者在学习Python的过程中,不可避免的总会遇到if __name__ == '__main...举个例子,我们在下面在test.py中写入如下代码: print('恋习Python') def main(): print('恋习Python') if __name__ == '...与之前test.py代码运行结果比较,只有输出恋习Python,也就是if __name__=="__main__": 之前的语句被执行,之后的没有被执行。 这是为什么呢?...此时,test.py中的__name__变量值为test,不满足__name__=="__main__"的条件,因此,无法执行其后的代码。 哈哈,是不是一下明白啦,觉得不错,给菜鸟分析点个赞哦!...再仔细想想,其运行原理也就是: 由于每个python模块(python文件)都包含内置的变量__name__,当运行模块被执行的时候,__name__等于文件名(包含了后缀.py)。
在具体说明if name == 'main'功能前,先从一个简单的实例直观上感受一下。...实际上if name=="main":就相当于是 Python 模拟的程序入口。由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个,选中哪个入口程序取决于 name 的值。...可以做一下测试: # test.py print("hahaha") print(__name__) if __name__ == '__main__': print("I'm test.py...") 可以发现,此时变量name的值为"main",即打印“I'm test.py”。...2. name 2.1 name是内置变量,可用于表示当前模块的名字 2.2 name是内置变量,可用于反映一个包的结构。
在 python 文件中,我们经常会看到 if __name__ == "__main__" 。那么 if __name__ == "__main__" 是什么?它可以用来干什么呢?...python 解释器在读取 python 文件时,会设置一些特殊变量的值,其中有一个变量是 __name__ ,下面我们通过一些例子来认识下 __name__。...当一个文件作为主程序运行时,__name__ 会被设置成 __main__。 python 文件作为模块导入 新建 bar.py 文件。...: bar foo's __name__ is set to: __main__ 从结果可以看出,当 bar.py 作为一个模块被导入时,它的 __name__ 被设置成了文件的名字 bar。...directly 总结 __name__ 的存在可以使我们更加灵活地控制 python 作为主程序执行时应该执行的代码块以及作为模块被导入执行时应该执行的代码块。
if __name__ == ‘__main__’:的作用 一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行。...因此 if __name__ == ‘main’: 的作用就是控制这两种情况执行代码的过程,在 if __name__ == ‘main’: 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行...即,if __name__==”__main__”: 语句之前和之后的代码都被执行。...即,if __name__==”__main__”: 之前的语句被执行,之后的没有被执行。...if __name__ == ‘__main__’:的运行原理 每个python模块(python文件,也就是此处的 test.py 和 import_test.py)都包含内置的变量 __name__
让我们一起来详细探讨一下这个问题:if __name__ == "__main__": 的作用是什么? 背景:在 Python 中,每个 .py 文件其实都可以被视为一个模块(module)。...当一个 Python 文件被直接执行时,Python 解释器会将该文件的 __name__ 设置为特殊值 "__main__"。...一个 Python 文件,它如果被直接运行,其 __name__ 的值是 __main__。...__name__ == "__main__" 是什么意思? 当一个 Python 模块在最高层级代码环境中执行时,它的 __name__ 会被设为字符串 "__main__"。...你可以在这里编写测试用例,验证模块的功能是否正常。 总之,if __name__ == "__main__": 是一个重要的 Python 构造,它让我们的代码更加灵活、可重用。
一天偶然发现知乎上有篇关于对python编程中的if __name__ == 'main'的理解陈述,看完之后,自己觉得不够简单明了,于是在其文章底部写了一句话,突然收获各位乎友满满的赞同: 一句话,...相信初学者在学习Python的过程中,不可避免的总会遇到if __name__ == 'main'语句,虽然一直知道它的作用,但是可能一直比较模糊,今天菜鸟分析就与大家一起举例说说我的理解。...举个例子,我们在下面在test.py中写入如下代码: print('恋习Python') def main(): print('恋习Python') if __name__ == '__main...与之前test.py代码运行结果比较,只有输出恋习Python,也就是if __name__=="__main__": 之前的语句被执行,之后的没有被执行。 这是为什么呢?...再仔细想想,其运行原理也就是: 由于每个Python模块(Python文件)都包含内置的变量__name__,当运行模块被执行的时候,__name__等于文件名(包含了后缀.py)。
**main函数的作用?** __ name__ == ‘__ main__’是Python的main函数入口。...在Python中有一个概念叫做模块(module),比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块。...__ == ‘__main__’:解释: 1:__name__是一个变量。...前后加了爽下划线是因为是因为这是系统定义的名字。普通变量不要使用此方式命名变量。2:Python有很多模块,而这些模块是可以独立运行的!这点不像C++和C的头文件。...一种是带有入口点(entrypoint)的程序,这样操作系统就可以加载程序并从入口点执行;另一个… 2019-12-20 20:14 − 当我们阅读 别人的python代码都会有 if __name_
相信刚接触Python的你一定有过如此经历,把所有的代码都写在 if __name__ == '__main__'下,因为有人告诉你,这样比较符合 Pythonista 的代码风格。...殊不知这段代码的意义并不是一定要存在于执行代码中,而是在日常工作中,为了调试某个模块的正确性,我们往往会在当前模块下直接写一个 if __name__ == '__main__',测试逻辑写在下面,这样...原因很简单,因为 if __name__ == '__main__' 中的 __name__ 代表的就是当前执行的模块名。...python一切皆对象,所以python的模块也是对象,他有一个 built-in module,叫 __name__,存储着模块是如何被执行的,如果是执行当前模块,那么就显示 __main__ ,如果是被引用进来的...runpy 详细的用法详见这里不多做介绍,有兴趣的可以自行翻阅manual。 这两种方法就是比较常用的在一个模块中执行另一个模块的 if __name__ == '__main__' 的方法。
用python 判断一个单链表是否有环. https://leetcode.com/problems/linked-list-cycle/ 思路1: 判断一个单链表是否有环, 可以用 set 存放每一个...value): self.value = value self.next = None class Solution1: """ 思路分析: 判断一个单链表是否有环...但无论如何 当慢指针 进入环的时候, fast 有可能在 慢指针的后面, 或者前面, 无论如何 快指针 是必慢指针走的快的 , 所以 只要有环 一定可以 和慢指针来一次相遇....如果 两个指针相遇了, 则说明链表是有环的....__ == '__main__': pass 分享感动,留住快乐. 2019-01-27 11:53:45 --frank
__main__变量: 在Python中,__main__ 是一个特殊的模块,它主要用于执行模块中的main()函数。...当你直接运行一个Python文件时,这个文件中的代码会进入__main__模块。换句话说,__main__模块是Python解释器直接运行的入口。...在Python中,一个模块的__name__属性会自动设置为’__main__',如果你直接运行一个模块,你可以通过这个属性来判断当前的模块是否是__main__模块。...例如,下面的代码: if __name__ == '__main__': print("这是一个直接运行的模块") 当我们运行这条代码所写在的文件的时候:__name__就会直接被设置成__main...__ 当我们运行别的文件的时候,__name__是不会被设置成__main__的 利用这个特性,我们就可以在这个条件判断语句内写入测试语句,从而达到: 在运行模块的时候,能够进入测试语句, 但是在别的文件中导入模块
领取专属 10元无门槛券
手把手带您无忧上云