首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby中的` in __name__ == '__main__'`等效项

Ruby中的` in __name__ == '__main__'`等效项
EN

Stack Overflow用户
提问于 2010-02-12 10:30:28
回答 2查看 21.9K关注 0票数 106

我是Ruby的新手。我希望从包含我想要单独使用的工具的模块中导入函数。在Python中,我只需这样做:

代码语言:javascript
复制
def a():
    ...
def b():
    ...
if __name__ == '__main__':
    a()
    b()

这允许我运行程序或将其作为模块导入,以便单独使用a()和/或b()。Ruby中的等效范例是什么?

EN

回答 2

Stack Overflow用户

发布于 2013-10-15 06:55:46

如果堆栈跟踪为空,我们可以从右边和左边开始执行。我不知道这是常规还是非常规的用法,因为我已经使用Ruby大约一周了。

代码语言:javascript
复制
if caller.length == 0
  # do stuff
end

概念验证:

文件: test.rb

代码语言:javascript
复制
#!/usr/bin/ruby                                                                 

if caller.length == 0
  puts "Main script"
end

puts "Test"

文件: shmest.rb

代码语言:javascript
复制
#!/usr/bin/ruby -I .                                                            

require 'test.rb'

puts "Shmest"

用法:

代码语言:javascript
复制
$ ./shmest.rb 
Test
Shmest

$ ./test.rb
Main script
Test
票数 12
EN

Stack Overflow用户

发布于 2020-02-12 07:50:46

代码语言:javascript
复制
if $PROGRAM_NAME == __FILE__
  foo()
  bar()
end 

Rubocop的首选,而不是这个:

代码语言:javascript
复制
if __FILE__ == $0
    foo()
    bar()
end
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2249310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档