Passage de paramètre de constructeur de classe de base ou à l'aide de variable d'instance?

Toutes les classes dérivées à partir d'une certaine classe de base ont pour définir un attribut appelé "chemin d'accès". Dans le sens de duck-typing je pouvais compter sur la définition de la sous-classes:

class Base:
    pass # no "path" variable here

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

Une autre possibilité serait d'utiliser le constructeur de classe de base:

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

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

J'utilise Python 3.1.

Ce que vous préférez et pourquoi? Est-il un meilleur moyen?

OriginalL'auteur deamon | 2010-04-28