python -i
会执行脚本,然后提供一个交互式提示符,仍然可以访问在脚本中声明的变量。Ruby有类似的选项吗?我尝试过require
,但似乎在使用它后变量不再在作用域内。例如:
Steven$ cat simple.rb
s = "hello"
Steven$ irb
irb(main):001:0> require_relative('simple')
=> true
irb(main):002:0> puts s
NameError: undefined local variable or method `s' for main:Object
from (irb):2
from /usr/bin/irb:12:in `<main>'
irb(main):003:0>
s
是一个局部变量。局部变量之所以被称为局部变量,是因为它们仅在定义它们的作用域内有效。在这种情况下,s
的作用域是simple.rb
脚本主体。只能在那里访问它。如果您需要具有不同作用域的变量,则需要使用不同作用域的变量,在这种情况下可能是全局变量或main
的实例变量。 - Jörg W Mittag