Код: Выделить всё
#!/usr/bin/env python3
# vars_in_func.py
# Test script for variables within a function.
def func():
print(greeting)
def main():
greeting = "Hello world"
func()
main()
Код: Выделить всё
Traceback (most recent call last):
File "./vars_in_func.py", line 11, in
main()
File "./vars_in_func.py", line 9, in main
func()
File "./vars_in_func.py", line 5, in func
print(greeting)
NameError: name 'greeting' is not defined
Я предполагаю, что мне просто не хватает ключевой концепции. Я только начал изучать Python после изучения Bash.
Изменить: прочитав ответы, я понял свою ошибку: я все еще думаю в терминах Bash, где функции выполняются либо в той же оболочке, что и вызывающая сторона (с теми же переменными), либо в подоболочке вызывающей стороны (наследуемые переменные).
Подробнее здесь: https://stackoverflow.com/questions/413 ... ion-on-run
Мобильная версия