私はRubyとPythonを同時に学習しています。私が気づいたことの1つは、これらの2つの言語がスコープを異なるように扱うように見えるということです。ここで私が何を意味するかの例です: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"
デフブロックはPythonでその直接の範囲の外ではなくRubyで宣言された変数にアクセスすることができるように思われます。誰かが私の理解が正しいかどうかを確認できますか?もしそうなら、これらのスコープの考え方の1つがプログラミングでより一般的であるかどうか?
Python側にとっては、あなたが正しいです(明らかにスコープが増えていますが、フレーズはそれに矛盾しません)。 – delnan
可能なPythonの答えはこちら:http://stackoverflow.com/questions/370357/python-variable-scope-question –