@become_iron

Как добавить распаковку для объекта своего класса?

В Python можно распаковывать списки на аргументы подобным образом:
a = ['a', 2, 'c']
print(*a)

А как сделать точно так же, но для объекта своего пользовательского класса?
print(*myObject)

Возможно, для этого нужно использовать какой-то "магический" метод?
  • Вопрос задан
  • 335 просмотров
Решения вопроса 2
Avernial
@Avernial
Разрабатываю научное ПО на языке Python.
Например вот так:

class A(object):

    def __init__(self, a, b, c):
        self.a = a
        self.b = b
        self.c = c

    def __iter__(self):
        yield from [self.a, self.b, self.c]


obj = A(1, 2, 3)

print(*obj)
Ответ написан
@abcd0x00
Это тебе полный вариант, если что сложное делать соберёшься.
>>> class A:
...     
...     def __iter__(self):
...         self.it = iter('abc')
...         return self
...     
...     def __next__(self):
...         return next(self.it)
... 
>>> a = A()
>>> print(*a)
a b c
>>>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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