Как навсегда изменить глобальную переменную из определения - PullRequest
0 голосов
/ 17 апреля 2019

У меня проблемы с обновлением и вызовом значения глобальной переменной.

Я пробовал искать похожие посты и статьи в интернете. Также локализует небольшой тест, который, кажется, работает нормально ... однако в этой части моего общего кода он не работает.

WEEK_ONE_REFINED = ""

def change_it():
    global WEEK_ONE_REFINED
    WEEK_ONE_REFINED = week_one_refined.strftime("%d/%m/%Y")

def print_it():
    print (WEEK_ONE_REFINED)

У меня есть глобальная переменная с именем WEEK_ONE_REFINED. Я нажимаю кнопку и вызываю change_it. Затем я нажимаю другую кнопку и вызываю print_it, но все, что она печатает, это оригинальное значение "". Не обновленное значение.

Ответы [ 4 ]

0 голосов
/ 17 апреля 2019

Извините, ребята, и спасибо за вашу помощь.

Функция была связана с флажком и работала только в том случае, если флажок был установлен.Как только я начал устанавливать флажки, переменные обновлялись.

Теперь я исправил это так, что глобальные переменные обновляются независимо от того, были ли установлены флажки.

Спасибо за вашу помощь.

0 голосов
/ 17 апреля 2019

Ваш код правильный. Если вы печатаете исходное пустое значение, происходит одна из двух вещей

  • change_it не вызывается раньше print_it() (вероятно, кнопка не вызывает его)
  • выражение strftime предоставляет пустую строку (маловероятно)
0 голосов
/ 17 апреля 2019

На первый взгляд ваш код кажется правильным.Я бы сказал, что ваша проблема в том, что week_one_refined.strftime("%d/%m/%Y") вызывает исключение, а переменная никогда не обновляется.

0 голосов
/ 17 апреля 2019

Любая причина, почему это должно быть глобальным?Это было бы лучше:

def change_it(week_str):
    return week_str.strftime("%d/%m/%Y")

def print_it(week):
    print (week)

week = change_it("1/2/2019")
print_it(week)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...