В функции вместо того что бы обрабатывать глобальную переменную, создаётся локальная
К примеру:
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
А вот читать глобальную переменную можно и без объявления её глобальной, как вы и делаете в первой функции. Так вот хитро сделано в питоне.