私は Ruby と Python を同時に学んでいますが、気づいたことの 1 つは、これら 2 つの言語ではスコープの扱いが異なるように見えることです。これが私が意味することの例です:
# 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 ではアクセスできないようです。私の理解が正しいかどうか誰かが確認できますか? もしそうなら、これらのスコープの考え方のいずれかがプログラミングでより一般的かどうか?