@kou1lsdk

To many values to unpack как фиксить?

import vk_api
from plugins import system, function
from vk_api.bot_longpoll import VkBotEventType, VkBotLongPoll

vk, longpoll = system.session()

while True:
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
if event.obj.text.lower() == 'рег':
text = function.register(event.obj.from_id)
vk.message.send(peer_id=event.obj.peer_id,
message={text}, random_id=0)
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Если ты используешь распаковку коллекции (т.е. оператор вида a, b, c = some_value), тебе нужно быть уверенным, что some_value содержит в точности столько значений, сколько переменных ты распаковываешь.
Если это не так, есть три варианта:
1. Если ты знаешь, сколько значений в возвращаемой коллекции, ты можешь просто добавить нужное количество переменных. a, b, c, _ = some_value. Символом _ обычно обозначаются неиспользуемые переменные/параметры.
2. Если ты не знаешь, сколько значений в возвращаемой коллекции, или это число меняется, можно не выпендриваться, а работать с индексами. Но тебе нужно быть уверенным, что у тебя всегда есть как минимум нужное число значений.
a = some_value[0]
b = some_value[1]
c = some_value[2]
# и так далее.

3. Есть ещё вариант распаковки, который работает, если ты значешь, что значений больше, чем нужно:
a, b, c, *_ = somevalue

Я бы посоветовал второй вариант
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы