1

我有以下课程:

class Player(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

我有一个class(Lobby)包含玩家的。该类应该为每个玩家提供额外的属性。例如,idle时间:

class Lobby(object):
    def __init__(self, players):
        self.players = players
        for player in players:
            player.idle = 0

而且我还有另一个class(Game) 这个类应该为每个玩家提供额外的属性。例如,team属性

class Game(object):
    def __init__(self, players):
        self.players = players
        self.organize_teams();

    def organize_teams(self):
        for player in self.players:
            if condition1:
                player.team = 0
            elif condition2:
                player.team = 1
            elif condition3:
                player.team = 2

问题是玩家的额外属性只与特定的类有关。所以我想了另一种方法来做到这一点。

例如,大厅类:

class Lobby(object):
    def __init__(self, players):
        self.players = {}
        for player in players:
            self.players[player] = {idle: 0}

这是一个好习惯吗?

4

1 回答 1

0

如果我猜对了,您希望存储 的每个实例的值Player,但这些值应该由 的实例管理Game。因此,不同的实例Game对于某个特定的 可以有不同的值Player。在这种情况下,您只需要 aPlayer和值之间的映射。那只是一个dict. 因此,我会提出您在 中显示的解决方案Lobby

于 2013-11-14T20:36:55.510 回答