1

这是一个最佳实践问题

假设,我有一个类对象,如下所示:

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

可以说,我实例化了其中的 3 个对象

a = ClassOfObjects('one')
b = ClassOfObjects('two')
c = ClassOfObjects('three')

现在,我想创建我的对象列表。一种明显的方法是创建列表对象

ListOfObjects = [a,b,c]

我发现这是限制性的。特别是当我尝试搜索具有特定对象的对象时。有没有人知道任何最佳实践。

4

1 回答 1

7

您可以让每个实例在创建时向类注册自身:

class K(object):
     registry = {}
     def __init__(self, name):
         self.name = name
         self.registry[name] = self

然后K.registry是您创建的所有实例的字典,名称为键。您甚至不需要将实例分配给变量,因为它可以通过注册表访问。您还可以轻松地迭代实例。

也许如果您分享有关您的用例的更多信息,有人可以提供更好的选择。

于 2012-04-07T06:42:26.633 回答