Простой вопрос о области переменных: почему переменные, объявленные в основной функции, доступны из внешних функций? То есть Почему следующая печать «да»?Объем переменных, объявленных в основной функции?
def run():
print var
if __name__ == '__main__':
var = 'yes'
run()
И есть ли способ «отключить это»? С точки зрения написания хорошего кода, это не помогает упускать пропущенные переменные в функции в качестве аргументов и все еще иметь ваш код.
Это не «основная функция»; это просто оператор if. Вы можете определить функцию, называемую 'main' (или что-то еще), и только вызывать ее внутри' if', если хотите. – Ryan
Заблуждение состоит в том, что в вашем коде нет основной функции. Единственная функция, которая есть, - это 'run()' и 'run', конечно, видеть все внешние переменные (хотя и не изменять их). – ImportanceOfBeingErnest