【发布时间】:2016-01-28 21:15:30
【问题描述】:
如何实现自定义双星运算符 (**) 进行解包,类似于 __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>
}
【问题讨论】:
标签: python class python-3.x magic-methods