如何从参数调用python对象

如何从参数调用python对象,python,class,Python,Class,是否可以使用类中的参数作为对象的标识?例如: class simpleclass: def __init__(self, name): self.name = name myobject = simpleclass("Jerry") myobject2 = simpleclass("Jimmy") 我如何称呼所有名为“Jerry”的对象? 有可能吗?谢谢 只需检查您要检查的每个对象的名称属性是否为'Jerry': objects = [myobject, myo

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

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

myobject = simpleclass("Jerry")
myobject2 = simpleclass("Jimmy")
我如何称呼所有名为“Jerry”的对象?
有可能吗?谢谢

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

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

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

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

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

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

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

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

list\u of_objs=[myobject,myobject2]
jerrys=[obj for obj in list\u of_objs如果obj.name==“Jerry”]
您的init语句错误。它应该是
\uuuu init\uuuu
如果您有一组
simpleclass实例,那么'Jerrys={simple.'Jerry'代表simples}。但是,simpleclass实例是不可调用的。另外,使用
self
作为成员方法的第一个参数修复错误,感谢
list\u of_objs=[myobject,myobject2]
jerrys=[obj.name==“Jerry”]
您的init语句是错误的。它应该是
\uuuu init\uuuu
如果您有一组
simpleclass实例,那么'Jerrys={simple.'Jerry'代表simples}。但是,simpleclass实例是不可调用的。另外,使用
self
作为成员方法的第一个参数修复了错误,谢谢。这似乎很接近,我可以调整它,通过将其放在单独的for函数中,为我提供所需的正确列表。然而,我无法让你的代码片段在列表中产生任何结果,如果你能为其他试图实现这一目标的人找到问题,那就太好了。@HasithVattikuti我不知道你为什么不能让它工作。这对我来说很好。它应该和具有相同结构的for循环没有什么不同。这似乎很接近,我可以调整它,通过将它放在单独的for函数中,来给出我想要的正确列表。然而,我无法让你的代码片段在列表中产生任何结果,如果你能为其他试图实现这一目标的人找到问题,那就太好了。@HasithVattikuti我不知道你为什么不能让它工作。这对我来说很好。它应该和具有相同结构的for循环没有什么不同。