Diese Frage dient nicht der Diskussion, ob das Singleton-Entwurfsmuster wünschenswert ist, ein Anti-Muster ist oder für irgendwelche Religionskriege, sondern um zu diskutieren, wie dieses Muster in Python am besten auf eine Weise implementiert werden kann, die am pythonischsten ist. In diesem Fall definiere ich "am pythonischsten" so, dass es dem …
Ich verwende Django, mit dem Leute einer Klasse zusätzliche Parameter hinzufügen können, indem sie verwenden class Meta . class FooModel(models.Model): ... class Meta: ... Das einzige, was ich in Pythons Dokumentation gefunden habe, war: class FooMetaClass(type): ... class FooClass: __metaclass__ = FooMetaClass Ich denke jedoch nicht, dass dies dasselbe ist.
Ich habe einen Freund, der gerne Metaklassen verwendet und diese regelmäßig als Lösung anbietet. Ich bin der Meinung, dass Sie fast nie Metaklassen verwenden müssen. Warum? weil ich denke, wenn Sie so etwas mit einer Klasse machen, sollten Sie es wahrscheinlich mit einem Objekt machen. Und ein kleines Redesign / …
In Python kann ich mit dem @classmethodDecorator eine Klassenmethode erstellen : >>> class C: ... @classmethod ... def f(cls): ... print(f'f called with cls={cls}') ... >>> C.f() f called with cls=<class '__main__.C'> Alternativ kann ich eine normale (Instanz-) Methode für eine Metaklasse verwenden: >>> class M(type): ... def f(cls): ... …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.