Не меняется значение переменной в python?

У меня не меняется значение переменной в python.
Отрывок из моего кода:
if musicState == "Off":
	musicState = "On"
	info.music = True
elif musicState == "On":
	musicState = "Off"
	info.music = False

Значение music в другом файле не изменилось на False.
Можете помочь?
  • Вопрос задан
  • 662 просмотра
Пригласить эксперта
Ответы на вопрос 1
@FrCl
1. Судя по всему, это кусок какой-то функции, а info - это экземпляр какого-то класса. Надо разобраться с этим экземпляром. Он один и тот же во всех файлах или, может быть, в разных файлах создаётся заново?
2. Значения "On" и "Off" здесь прописаны с большой буквы, возможно, где-то в другом месте с маленькой или вообще с опечаткой. Логичнее было бы использовать булево значение True или False, тогда весь код выглядел бы гораздо проще:

musicState = not musicState
info.music = musicState


Если принципиально использовать именно строки On и Off, добавьте к вашему коду ещё дополнительную проверку:
else:
    assert False, f"musicState is {musicState}"


3. Возможно, musicState - это глобальная переменная, и вы забыли написать в начале функции
global musicState

4. Нужна ли вам вообще эта переменная musicState? Мб, стоит обойтись только info.music?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект