通过实例变量控制类的特定实例

时间:2017-05-16 01:26:37

标签: python python-2.7

class Class():
    def __init__(self, id, name):
        self.id = id
        self.name = name


class1 = Class(1, "Adam")
class2 = Class(2, "Bob")
class3 = Class(3, "John")

player_id = 1

if player_id == class1.id:
    print class1.name

elif player_id == class2.id:
    print class2.name

elif player_id == class3.id:
    print class3.name
#etc

我想要做的是缩短此代码。对于我制作的每个课程,我都必须为此添加另一个块,并在一段时间后变得疯狂。我希望能够查看player_id是否与任何类相同,并且如果它们的ID匹配,则控制(查找其名称)该类的实例

1 个答案:

答案 0 :(得分:1)

通常,当您想要O(1)查找时,您需要使用dictionary创建映射。

id_map = {c.id: c for c in [class1, class2, class3]}
print id_map[player_id].name