如何从参数调用python对象

时间:2019-02-06 02:50:05

标签: python class

是否可以在类中使用参数作为对象的标识?例如:

class simpleclass:
     def __init__(self, name):
          self.name = name

myobject = simpleclass("Jerry")
myobject2 = simpleclass("Jimmy")

如何调用所有名称为“ Jerry”的对象? 可能吗谢谢!

2 个答案:

答案 0 :(得分:1)

只需检查要检查的每个对象的name属性是否为'Jerry'

objects = [myobject, myobject2, ...]
[obj for obj in objects if obj.name == 'Jerry']

答案 1 :(得分:1)

听起来您可能想使用字典将对象的标识符映射到具有相同标识符的所有对象的列表。下面是一个示例。

from collections import defaultdict

simpleclass_list_by_name = defaultdict(list)
simpleclass_list_by_name['Jerry'].append(simpleclass('Jerry'))
simpleclass_list_by_name['Jerry'].append(simpleclass('Jerry'))

for name in simpleclass_list_by_name:
    simpleclass_list = simpleclass_by_name[name]
    for sc in simpleclass_list:
        # do something