estrela desempacotando para classes próprias

Eu queria saber se é possível usar a descompactação em estrela com classes próprias, em vez de apenas built-in comolist etuple.

class Agent(object):
    def __init__(self, cards):
        self.cards = cards
    def __len__(self):
        return len(self.cards)
    def __iter__(self):
        return self.cards

E ser capaz de escrever

agent = Agent([1,2,3,4])
myfunc(*agent)

Mas eu entendo:

TypeError: visualize() argument after * must be a sequence, not Agent

Quais métodos eu tenho que implementar para tornar possível a descompactação?

questionAnswers(1)

yourAnswerToTheQuestion