• Как поделиться переменными между потоками из разных модулей?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Не используйте глобальные переменные. Не используйте глобальные переменные в конкурентной среде ещё сильнее.
    Ответ написан
    Комментировать
  • Объясните почему происходит ошибка UnboundLocalError: local variable 'error_count' referenced before assignment?

    @galaxy
    Так работают переменные в питоне.
    Если переменная только читается в локальной области видимости (в вашем случае - внутри функции login()), то она будет искаться последовательно локально, в области видимости на уровень выше и так до глобальной.
    Если в переменную идет запись в локальном скоупе, то она становится локальной (причем сразу, а не в момент записи). Это поведение меняется объявлением переменной global или nonlocal. Надеюсь, понятно написал (если что, об этом в интернете полно материалов, например)

    В вашем примере error_count в функции login() - локальная, т.к. внутри функции идет запись в нее. При этом вы пытаетесь читать из нее до записи (ибо error_count += 1 суть error_count = error_count+1).
    Ответ написан