В функции вместо того что бы обрабатывать глобальную переменную, создаётся локальная

К примеру:

can_do = True
def func_1():
    while can_do:
        do_something()

def func_2():
    can_do = False

И вместо того, что бы обработать функцию can_do, программа создает локальную переменную.


Ответы (1 шт):

Автор решения: CrazyElf

Если вы хотите изменять глобальную переменную, то нужно объявлять её глобальной:

def func_2():
    global can_do
    can_do = False

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

→ Ссылка