En utilisant abc, je peux créer des classes abstraites en utilisant les éléments suivants:Comment créer des classes abstraites en utilisant abc sans utiliser une méthode abstraite?
from abc import ABC, abstractmethod
class A(ABC):
@abstractmethod
def foo(self):
print('foo')
class B(A):
pass
obj = B()
Cela échouera parce que B
n'a pas défini la méthode foo
. Ceci imite la fonctionnalité de méthode abstraite dans Java.
Je voulais savoir si la fonctionnalité de classe abstraite est également présente dans Python, où l'instanciation d'une classe est empêchée sans avoir de méthodes abstraites.
Je ne comprends pas votre question. Que voulez-vous dire par «où l'instanciation d'une classe est empêchée sans avoir de méthodes abstraites»? vous voulez imposer la classe elle-même pour implémenter des méthodes abstraites? – Vinny
En Java, la méthode abstraite et les classes abstraites sont deux concepts différents. Les méthodes abstraites doivent être définies par les sous-classes et les classes abstraites ne peuvent pas être instanciées. Mais dans le module abc de python (à ma compréhension) les deux sont liés ensemble. Existe-t-il un moyen de définir une classe abstraite sans décorer les méthodes en tant que méthodes abstraites? –