Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过实例变量控制类的特定实例_Python_Python 2.7 - Fatal编程技术网

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

Python 通过实例变量控制类的特定实例,python,python-2.7,Python,Python 2.7,我想做的是缩短这段代码。对于我所做的每一个类,我都必须在这个类中添加另一个块,这会在一段时间后变得疯狂。我希望能够查看player_id是否与任何类相同,如果它们的id匹配,我希望能够找到它的名称该类的实例。通常,当您需要O1查找时,您需要使用字典创建映射 这似乎是正确的答案,但我将把它转换为实际代码,看看它是否有效。谢谢:啊,我不擅长问问题。我没有在课堂上提到名字实际上是一个列表,我不知道这会改变一切。你的回答对所问的问题是正确的,但我认为我所做的事情没有答案。再查一下,显然不可能不失去更改列

我想做的是缩短这段代码。对于我所做的每一个类,我都必须在这个类中添加另一个块,这会在一段时间后变得疯狂。我希望能够查看player_id是否与任何类相同,如果它们的id匹配,我希望能够找到它的名称该类的实例。通常,当您需要O1查找时,您需要使用字典创建映射


这似乎是正确的答案,但我将把它转换为实际代码,看看它是否有效。谢谢:啊,我不擅长问问题。我没有在课堂上提到名字实际上是一个列表,我不知道这会改变一切。你的回答对所问的问题是正确的,但我认为我所做的事情没有答案。再查一下,显然不可能不失去更改列表的能力,这是非常重要的important@AdamBurros你在试着比较列表吗?或者只是确定列表中是否存在一个值?列表中只有两个坐标,比如每个区域的[0,0],所以我想将player_id与坐标进行比较。玩家id也是一个类似[0,0]的列表,同样不擅长提问。我找到了一个解决方法。我列出了所有的类和一个函数,该函数搜索这些类并返回与玩家坐标相同的类,效果很好。可能效率不高,但是呃。谢谢你的帮助
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
id_map = {c.id: c for c in [class1, class2, class3]}
print id_map[player_id].name