首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ruby相当于Python __main__

Ruby相当于Python中的__main__

在Python中,__main__是一个特殊的模块名,它表示当前执行的脚本文件。当Python解释器执行一个脚本文件时,它会将该文件作为__main__模块来执行。

而在Ruby中,相当于__main__的概念是$0全局变量。$0保存了当前执行的脚本文件的文件名。

Ruby和Python都是动态脚本语言,它们都具有相似的特性,如动态类型、垃圾回收等。它们也都有丰富的标准库和第三方库,可以用于各种开发任务。

Ruby和Python在语法上有一些差异,但它们都非常易于学习和使用。它们都支持面向对象编程,并且具有强大的元编程能力。

对于Ruby开发者来说,如果要在Python中找到相当于__main__的概念,可以使用if __name__ == "__main__"条件判断来执行一些特定的代码块,这样可以确保这些代码只在当前脚本文件作为主模块执行时才会被执行。

总结来说,Ruby相当于Python中的__main__,它们都表示当前执行的脚本文件,但在具体的语法和用法上有一些差异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python __name__ == ‘__main__’详细解释

学习过C语言或者Java语言的盆友应该都知道程序运行必然有主程序入口main函数,而python却不同,即便没有主程序入口,程序一样可以自上而下对代码块依次运行,然后python不少开源项目或者模块中依然存在...__name__ == “__main__” 当.py文件被直接运行 (Ctrl+Shift+F10)时, if  __name__ == “__main__”  之下的代码块将被运行,该语句就相当与python...__name__) if __name__ == "__main__": prit_name() 输出结果: my_name.py __name__: my_name python_main.py...__name__: __main__ 由此可见,作为启动文件 python_main.py ,该文件的内置属性 __name__ 等于 “__main__”,而my_name.py 作为导入模块,该模块的...猜你喜欢: 1.python模块 2.python异常处理 3.python return逻辑运算表达式 4.python 字典推导式 5.python 列表推导式 转载请注明:猿说Python » python

38830

Python里“__main__”是干啥的?

__ name__ == '__ main__'是Python的main函数入口,但并不是有这行代码才能运行,这里只是可以判断代码是否被直接执行还是被调用执行。...新建个main.py文件,代码如下: def print_hi(name): print(f'Hi, {name}') print_hi('偶尔敲代码') if __name__ == '__main...__': print_hi('Python') 运行结果: Hi, 偶尔敲代码 Hi, Python 可见__main__里的代码被执行了。...import main main.print_hi('测试啊啊啊') 运行结果: Hi, 偶尔敲代码 Hi, 测试啊啊啊 可见__main__里的代码没被执行(没打印Hi, Python)。...在"if __name__ == '__main__'"中加入一些我们的调试代码,我们可以让外部模块调用的时候不执行我们的调试代码,但是如果我们想排查问题的时候,直接执行该模块文件,调试代码又能够正常运行

16440

Python中if __name__ == __main__: 的作用

Python中if __name__ == "__main__": 的作用 在很多python脚本中在最后的部分会执行一个判断语句if __name__ == "__main__:",之后还可能会有一些执行语句...在python编译器读取源文件的时候会执行它找到的所有代码,而在执行之前会根据当前运行的模块是否为主程序而定义变量__name__的值为__main__还是模块名。...这在当你想要运行一些只有在将模块当做程序运行时而非当做模块引用时才执行的命令,只要将它们放到if __name__ == "__main__:"判断语句之后就可以了。...("two.py is being run directly") else: print("two.py is being imported into another module") 当运行python...one.py,输出: top-level in one.py one.py is being run directly 当运行python two.py,输出: top-level in one.py

50620

python, ruby, javascript 浅析

讨论范围 PythonRuby、Javascript(ECMAScript) 准确说是一种语言规范,规范可以有多种实现,这体现在不同的解释器上。...Python 的解释器主要有 CPython、IronPython、Jython、PyPy Ruby 的解释器主要有 Ruby MRI(CRuby)、JRuby、MacRuby、IronRuby Javascript...至于 PythonRuby 设计理念的区别,一句话即可概括: Python: 一件事情只有一种方法做 Ruby: 一件事情有多种方法做 比如,Python 中 Tuple, Array, String...语法 如果你之前没接触过 rubypython 的语法,推荐先去了解下: 官方文档 Ruby in Twenty Minutes Ruby Essentials,两个小时绝对看完了 python 最佳实践...而在 python 与 javascript yield 是用来构造生成器(generator)的,都是用来控制程序运行流程,相当于用户态的“线程”: $ python def iter():

47110

Python中if __name__ == __main__: 的作用

Python中if __name__ == "__main__": 的作用 在很多python脚本中在最后的部分会执行一个判断语句if __name__ == "__main__:",之后还可能会有一些执行语句...在python编译器读取源文件的时候会执行它找到的所有代码,而在执行之前会根据当前运行的模块是否为主程序而定义变量__name__的值为__main__还是模块名。...这在当你想要运行一些只有在将模块当做程序运行时而非当做模块引用时才执行的命令,只要将它们放到if __name__ == "__main__:"判断语句之后就可以了。...("two.py is being run directly") else: print("two.py is being imported into another module") 当运行python...one.py,输出: top-level in one.py one.py is being run directly 当运行python two.py,输出: top-level in one.py

67850

27.python __name__ == ‘__main__’详细解释

学习过C语言或者Java语言的盆友应该都知道程序运行必然有主程序入口main函数,而python却不同,即便没有主程序入口,程序一样可以自上而下对代码块依次运行,然后python不少开源项目或者模块中依然存在...__name__ == “__main__” 当.py文件被直接运行 (Ctrl+Shift+F10)时, if  __name__ == “__main__”  之下的代码块将被运行,该语句就相当与python..., __name__)   if __name__ == "__main__":     prit_name() 输出结果: my_name.py __name__: my_name python_main.py...__name__: __main__ 由此可见,作为启动文件 python_main.py ,该文件的内置属性 __name__ 等于 “__main__”,而my_name.py 作为导入模块,该模块的...猜你喜欢: 1.python模块 2.python异常处理 3.python return逻辑运算表达式 4.python 字典推导式 5.python 列表推导式 转载请注明:猿说Python » python

40230

PythonRuby 的对比

3、和python相比ruby的不足:    最大的不足正是因为ruby的强大所引起的。它没有python的简单性好。...ruby还没有python的“自省”的能力,没有从程序文件中生成文档的能力。  ruby没有国际化的支持。国际化支持在ruby的计划中。这是因为ruby的历史比python要短造成的。 ...因为rubypython的哲学有很多相似的地方,先从python入手,尽量用python,如果python的能力不足了,可以在找ruby。   ...我们再回头谈谈作者一直讨厌的Python的多样性,在我看来Ruby可以超越Python的东西屈指可数,而Python超过Ruby的东西,自然是Ruby难以逾越的鸿沟。...七、从PythonRuby   Python是一门非常优秀的语言,从Python迁移到Ruby,你将发现一些语法上的不同。

1.3K20

Python 中的__main__和__name__

Python 程序文件的执行从第一条语句开始。 Python 包含名为__name__的特殊变量,该变量包含作为字符串执行的代码的范围。__main__是顶层代码执行的顶层作用域的名称。...Python Shell >>>__name__'__main__' Copy 所有的功能和模块都将在解释器 Shell 的顶层范围__main___内执行。...Python Shell >>> def f1():     print(__name__)>>> f1() Copy 甚至内部功能都是在顶层范围__main__内执行的: Python Shell >...注意:从命令提示符/终端执行的 Python 脚本文件将在顶层作用域__main__作用域下执行。但是,导入模块将在模块自己的范围内执行。...因此,顶层范围将是__main__,第二个范围将是模块的范围。 因此,使用特殊变量__name__和顶级范围__main__增加了可重用性。

13320

Python 中的 if __name__ == __main__ 该如何理解

if __name__ == '__main__' 就相当于Python 模拟的程序入口。Python 本身并没有规定这么写,这只是一种编码习惯。...例如在上例中,我们直接运行 c.py 文件(python a/b/c.py),输出结果如下: __main__   所以,if __name__ == '__main__' 我们简单的理解就是: 如果模块是被直接运行的...__main__.py 文件与 python -m   Python 的 -m 参数用于将一个模块或者包作为一个脚本运行,而 __main__.py 文件则相当于是一个包的”入口程序“。   ...__main__ ['', ...] 用 python package 运行结果: __main__ ['package', ...]...后序   我试图使用长篇大论来阐述,在 Python 中如何理解 if __name__ == '__main__' 这个问题,不知道我有没有描述得足够的明白。

83430

画说 RubyPython 垃圾回收

既然是"Ruby Python"大会,我觉得对比一下RubyPython的垃圾回收机制应该会很有趣。在此之前,到底为什么要计较垃圾回收呢?毕竟,这不是什么光鲜亮丽激动人心的主题,对吧。...下面是一个简单类,分别用PythonRuby写成,我们今天就以此为例: ? 于此同时,两种代码如此相似,让我感到非常吃惊:PythonRuby在表达相同的语义时几乎没有差别。...Python 的对象分配 我们已经了解了Ruby预先创建对象并将它们存放在可用列表中。那Python又怎么样呢?...Python开发者生活在一所整洁的房子 ? PythonRuby的垃圾回收机制颇为不同。让我们回到前面提到的三个Python Node对象: ?...引用计数算法 乍一看,Python的GC算法貌似远胜于Ruby的:宁舍洁宇而居秽室乎?为什么Ruby宁愿定期强制程序停止运行,也不使用Python的算法呢? 然而,引用计数并不像第一眼看上去那样简单。

67210

秒懂python编程中的if __name__ == __main__

原文链接:https://zhuanlan.zhihu.com/p/34112508 作者: 菜鸟分析 相信初学者在学习Python的过程中,不可避免的总会遇到if __name__ == '__main...举个例子,我们在下面在test.py中写入如下代码: print('恋习Python') def main(): print('恋习Python') if __name__ == '...__main__': main() print('跟着菜鸟分析,练习Python越练越恋') 运行代码,则输出结果为: ?...与之前test.py代码运行结果比较,只有输出恋习Python,也就是if __name__=="__main__": 之前的语句被执行,之后的没有被执行。 这是为什么呢?...再仔细想想,其运行原理也就是: 由于每个python模块(python文件)都包含内置的变量__name__,当运行模块被执行的时候,__name__等于文件名(包含了后缀.py)。

40311
领券