Je suis en train de déclarer une classe abstraite A
avec un constructeur avec un comportement par défaut: toutes les sous-classes doivent initialiser un membre self.n
:Python: classe abstraite __init__
from abc import ABCMeta
class A(object):
__metaclass__ = ABCMeta
def __init__(self, n):
self.n = n
Cependant, je ne veux pas laisser le A
class être instancié parce que, bien, c'est une classe abstraite. Le problème est, cela est réellement autorisé:
a = A(3)
Cela ne produit pas d'erreurs, quand je m'attendais à ce qu'il devrait. Donc, comment puis-je définir une classe abstraite non-instanciable tout en définissant un comportement par défaut pour le constructeur?
Cela ne produit aucune erreur !! instanciation fonctionne bien – void
Testé avec Python 2.7. –
Ouais j'utilise python3 ... Pourquoi est-ce que c'est? @ MikeMüller – void