Пользовательский оператор двойной звезды для класса?

Как реализовать пользовательский оператор двойной звезды (**) для распаковки, аналогично тому, как__iter__ работает с одиночной звездой (*)?

Например:

class PlayerManager(object):

    def __init__(self, players=None):
        self.players = players or []

    # Made up method to support ** operator
    def __dict_iter__(self):
        for player in self.players:
            yield get_steamid(player), player

def print_players(**players):
    print(players)

player_manager = PlayerManager([list, of, players])
print_players(player_manager)

Выход:

{
    'STEAM_0:0:02201': <Player object at 0x0000000000>,
    'STEAM_0:0:10232': <Player object at 0x0000000064>,
    'STEAM_0:0:73602': <Player object at 0x0000000128>
}

Ответы на вопрос(2)

Ваш ответ на вопрос