при просто принте: сначала ищет, что объявлено внутри функции - нихуя не находит; идет искать, что вне функции, видит, что там есть 'a', выводит это 'a' при принте с приравниванием после принта: ищет, что объявлено внутри функции, видит, что в функции есть 'a', объявленная после принта -> выкидывает ошибку, что ты пытаешься принтить то, чему еще не приравнено значение
да сколько можно. нет в питоне "объявлений".
вторую половину начал хорошо но нет
присваивания есть?
вместо объявлений?
нет. это принципиально разные вещи.
тогда присваивание?
При создании функции, имена, которым присваивается значение в функции помечаются как локальные (если они не помечены как global или nonlocal. Поиск локальных имен ведется только в локальном скоупе.
тут что-то другое. при просто def моя конструкция работает. а здесь @, и именно изза этого я не могу присвоить a
декоратор тут вообще никаким боком
ну этот же код у меня работает в другом месте
чувак. мне надо чтобы код работал, а не тебе врать ) понимаешь?
имена помечаются как локальные до исполнения тела?
да, во время генерации байткода. собственно разницу уже показывал Зарт выше.
блин, там def нет. там просто цикл
https://t.me/ru_python_beginners/2055800
а как быть? куда мне вернуть a? ведь эта функция ниоткуда из моего кода не вызывается, кроме polling?
зачем тебе глобальный список?
в него загружаются данные по каждому сообщению от всех пользователей, и через некоторое время они удаляются. если просто вызывать месседж хэндлер, то эта переменная будет каждый раз обнуляться
изучить какие механизмы работы с контекстом предлагает твой асинхронный фреймворк. но до этого еще далеко. сперва прочитать гребаный учебник по языку, на котором ты пытаешься что-то писать.
Обсуждают сегодня