Die übergabe-parameter auf Basis Konstruktor der Klasse oder die Instanz-variable?

Alle Klassen, die von einer bestimmten Basisklasse zu definieren, die ein Attribut namens "path". Im Sinne von duck typing, ich könnte verlassen sich auf definition in den Unterklassen:

class Base:
    pass # no "path" variable here

def Sub(Base):
    def __init__(self):
        self.path = "something/"

Andere Möglichkeit wäre die Verwendung der Basisklasse Konstruktor:

class Base:
    def __init__(self, path):
        self.path = path

def Sub(Base):
    def __init__(self):
        super().__init__("something/")

Verwende ich Python 3.1.

Was würdet Ihr bevorzugen und warum? Gibt es einen besseren Weg?

InformationsquelleAutor deamon | 2010-04-28
Schreibe einen Kommentar