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.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Mi faccia domande su questo argomento
Riassuma questo capitolo
Mostri esempi dal mondo reale
Awesome!
Completion rate improved to 2.78
Abstract Method
Scorri per mostrare il 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.
Grazie per i tuoi commenti!