我一直在同時學習Ruby和Python,並且我注意到的一件事是這兩種語言似乎以不同的方式處理作用域。下面是我的意思的例子:Ruby和Python中的範圍
# Python
a = 5
def myfunc():
print a
myfunc() # => Successfully prints 5
# Ruby
a = 5
def myfunc
puts a
end
myfunC# => Throws a "NameError: undefined local variable or method `a' for main:Object"
看來,DEF塊可以訪問在Python它的直接範圍之外,但不是在Ruby中聲明的變量。有人可以確認我的理解是否正確?如果是這樣,這些思維範圍的方式在編程中是否更常見?
對於Python方面,你是對的(顯然更多的是範圍界定,但你的措辭並不矛盾任何它)。 – delnan 2013-02-23 16:24:58
可能的Python答案在這裏:http://stackoverflow.com/questions/370357/python-variable-scope-question – 2013-02-23 16:27:36