繁体   English   中英

为仅与特定类相关的对象添加额外属性的最佳实践

[英]Best practice to add extra attributes for an object that related only to a specific class

我有以下课程:

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}

这是一个好习惯吗?

如果我理解正确,则希望存储每个Player实例的值,但这些值应由Game实例管理。 因此,对于特定Player不同的Game实例可以具有不同的值。 在这种情况下,您只需要一个Player和一个值之间的映射。 这只是一个dict 因此,我将建议您在Lobby显示的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM