Python 在类变量中存储类的实例是一种好的模式吗

Python 在类变量中存储类的实例是一种好的模式吗,python,class,oop,Python,Class,Oop,我在Python中经常使用的一种设计模式是: class Foo: foos = [] def __init__(self, argument): initialize_instance() foos.append(self) 这有名字吗?它被认为是一种有用的模式吗?我真的认为这在OOP中不是一个好的实践(我不是Python专家)。使用static(比如listfoos)几乎总是一个糟糕的概念。正如在评论中所说,更好的解决方案是设置一个服务类(查

我在Python中经常使用的一种设计模式是:

class Foo:
    foos = []
    def __init__(self, argument):
        initialize_instance()
        foos.append(self)

这有名字吗?它被认为是一种有用的模式吗?

我真的认为这在OOP中不是一个好的实践(我不是Python专家)。使用static(比如list
foos
)几乎总是一个糟糕的概念。正如在评论中所说,更好的解决方案是设置一个服务类(查看OOP中的SOA模式),为
Foo
的所有实例编制索引,并进一步检索它们


但是,不要认为这是注册表模式的变体。这是这种模式的反模式,防止类之间正确的低耦合。当然,Python并不是实现强OOP并尊重这一点的更好的语言,但我不建议这样做。

这基本上是的一个变体。如果你经常使用它,那么它显然是有用的,不是吗?@怪怪的不一定-它可能是一个反模式,或者可能有更好的解决方案。@sweeneyrod解决方案是什么?我们不知道你在解决什么问题。而且我不相信反模式。如果它解决了你的问题,那就好了。