Прежде чем привести пример, я хочу, чтобы вы поняли разницу между глобальной и локальной переменными в python
глобальная переменная: Это относится к текущему модулю
локальная переменная: Это характерно для текущих функций или методов, как мы их называем в python
Что, если локальная и текущая переменные имеют одинаковое имя boo?
В таком случае, если вы не определили переменную boo как глобальную в том же методе или функции, она по умолчанию будет использовать ее как локальную переменную
Подходит к вашему коду
Вы определили boo как глобальный в вашем методе say_boo_twice () .
Подвох заключается в том, что при попытке инициализировать boo = 'Boo!' в этом методе вы фактически перезаписываете то, что ранее инициализировали как boo = 'boo boo'
Попробуйте этот код
- Я не инициализировал переменную boo внутри метода say_boo_twice ()
def say_boo_twice():
global boo
print boo, boo
boo = 'boo boo'
say_boo_twice()
Всего наилучшего !!! !! !