Abstract Method
Abstract Method is a method that should be redefined in subclasses.
To create an abstract method, you should import the @abstractmethod
decorator from the abc
library.
from abc import ABC, abstractmethod
Note
Pay attention: decorator is imported without the
@
symbol.
12345678from abc import ABC, abstractmethod class SomeClass(ABC): @abstractmethod def some_method(): pass instance = SomeClass() # TypeError
The abstract methods should be implemented in subclasses. You can't create a subclass without redefining all abstract methods:
12345678910111213141516from abc import ABC, abstractmethod class AbstractParent(ABC): @abstractmethod def first_method(): pass @abstractmethod def second_method(): pass class Child(AbstractParent): def first_method(self): print("The first method") instance = Child() # TypeError
The class Child
saved the Abstract Class state because the second_method
is not redefined, and the ABC
class exists in the inheritance hierarchy.
12345678910111213141516171819202122from abc import ABC, abstractmethod class AbstractParent(ABC): @abstractmethod def first_method(): pass @abstractmethod def second_method(): pass class Child(AbstractParent): def first_method(self): print("The first method") def second_method(self): print("The second method") instance = Child() instance.first_method() instance.second_method()
Note
The abstract classes and methods exist to provide a strict class structure.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Posez-moi des questions sur ce sujet
Résumer ce chapitre
Afficher des exemples du monde réel
Awesome!
Completion rate improved to 2.78
Abstract Method
Glissez pour afficher le menu
Abstract Method is a method that should be redefined in subclasses.
To create an abstract method, you should import the @abstractmethod
decorator from the abc
library.
from abc import ABC, abstractmethod
Note
Pay attention: decorator is imported without the
@
symbol.
12345678from abc import ABC, abstractmethod class SomeClass(ABC): @abstractmethod def some_method(): pass instance = SomeClass() # TypeError
The abstract methods should be implemented in subclasses. You can't create a subclass without redefining all abstract methods:
12345678910111213141516from abc import ABC, abstractmethod class AbstractParent(ABC): @abstractmethod def first_method(): pass @abstractmethod def second_method(): pass class Child(AbstractParent): def first_method(self): print("The first method") instance = Child() # TypeError
The class Child
saved the Abstract Class state because the second_method
is not redefined, and the ABC
class exists in the inheritance hierarchy.
12345678910111213141516171819202122from abc import ABC, abstractmethod class AbstractParent(ABC): @abstractmethod def first_method(): pass @abstractmethod def second_method(): pass class Child(AbstractParent): def first_method(self): print("The first method") def second_method(self): print("The second method") instance = Child() instance.first_method() instance.second_method()
Note
The abstract classes and methods exist to provide a strict class structure.
Merci pour vos commentaires !