Зачем нужна функция global python? - Общение Python мододелов

Вопрос Зачем нужна функция global python?

Регистрация
12 Июл 2013
Сообщения
93
Репутация
0
Спасибо
0
Монет
0
Поясните, какой смысл локальную переменную изменять на глобальную? Не легче ли вообще не создавать локальную? Где это используется?

name = "Tom"



def say_hi():

global name

name = "Bob" # изменяем значение глобальной переменной

print("Hello", name)



say_hi()
 
Регистрация
15 Июл 2013
Сообщения
85
Репутация
0
Спасибо
1
Монет
0
позволяет изменять глобальные переменные внутри функции
 
Регистрация
9 Ноя 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
global - НЕ функция, а оператор. Указывающий, что любое обращение к переменной name внутри функции say_hi производится не к локальной переменной, существующей только внутри функции, а к глобальной (объявленной вне функции) переменной name.

global используется для того, чтобы внутри функции менять данные, которые используются где-то в другом месте кода, минуя механизмы передачи параметров в функции и возврата значений из функций.

Единичные использования global могут иметь смысл: если автор кода - сторонник процедурного программирования и ООП вообще не использует.

Но частое использование global или одновременное использование и global, и class - очевидный признак говнокода.

Приведённый пример не имеет смысла. Куда нагляднее так: def say_hi():
global name
name = "Bob" # изменяем значение глобальной переменной

name = "Tom"
print('Hello', name)
say_hi()
print('Hello', name)
 
Сверху Снизу