Область применения в 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. Может ли кто-нибудь подтвердить, правильно ли мое понимание? И если да, то один из этих способов мышления о сфере более распространен в программировании?

Ответы на вопрос(3)

Ваш ответ на вопрос