Mehrfacher Konstruktor mit Python

8

Ich habe eine Klasse A, die auf zwei verschiedene Arten erzeugt werden kann.

  • a = A (Pfad_zu_xml_Datei)
  • a = A (ListeA, ListeB)

Die erste Methode hat einen Dateipfad als Eingabe zum Analysieren der XML-Datei, um listA und listB zu erhalten. Die zweite Methode hat zwei Listen.

Ich kann mir zwei Möglichkeiten vorstellen, mehrere Konstruktoren zu implementieren. Was denken Sie? Welche Methode verwenden normalerweise Python-Leute für diesen Fall?

Überprüfen Sie den Typ

%Vor%

Erstellen Sie verschiedene Builder

%Vor%     
prosseek 19.10.2010, 20:13
quelle

5 Antworten

7

Lassen Sie den Konstruktor die zwei Listen nehmen. Schreiben Sie eine Factory-Klassenmethode, die das XML analysiert und das Objekt zurückgibt.

    
Ignacio Vazquez-Abrams 19.10.2010, 20:15
quelle
3

Verwenden Sie classmethod für die zweite

%Vor%

Verwenden Sie die Modulfunktionen

%Vor%     
petraszd 19.10.2010 20:19
quelle
3

Da die Anzahl der Argumente, die an den Initialisierer übergeben werden, in jedem Fall unterschiedlich ist, können Sie die Typprüfung vermeiden, indem Sie die erweiterte Aufrufsyntax verwenden:

%Vor%
Ray 19.10.2010 21:28
quelle
2

Wenn ich das Problem genauer betrachte, würde ich vorschlagen, dass die Klasse zwei Listen nimmt und eine Hilfsfunktion in das Modul aufnimmt:

%Vor%     
Chris B. 19.10.2010 20:17
quelle
2
%Vor%     
Dantalion 19.10.2010 21:57
quelle

Tags und Links