Avatar ·

Mehrere Konstruktoren mit unterschiedlicher Anzahl von Argumenten

📁 Python

Kann man in Python in einer Klasse mehrere Konstruktoren mit unterschiedlicher Anzahl von Argumenten erstellen?

class a:def __init__(self,b):    passdef __init__(self):    pass

In diesem Fall können Instanzen der Klasse nur mit dem zweiten Konstruktor erstellt werden, während der Aufruf x = a(42) einen Fehler auslöst.

Avatar ·

Hier ist eine Variante, bei der kein Speicherleck auftritt und die das Wrapping mehrerer Klassen unterstützt.

Metaklasse:

import weakrefclass MyMeta(type):    def __init__(self, *args, **kwargs):        self.__instances = {}        super(MyMeta, self).__init__(*args, **kwargs)    def get_instances(self):        retu list(self.__instances.values())    def delete(self, id_instance):        
                            

Anmelden um eine Antwort zu hinterlassen

Blogs