Método Abstrato
Método Abstrato é um método que deve ser redefinido em subclasses.
Para criar um método abstrato, você deve importar o decorador @abstractmethod
da biblioteca abc
.
from abc import ABC, abstractmethod
Nota
Atenção: o decorador é importado sem o símbolo
@
.
12345678from abc import ABC, abstractmethod class SomeClass(ABC): @abstractmethod def some_method(): pass instance = SomeClass() # TypeError
Os métodos abstratos devem ser implementados nas subclasses. Você não pode criar uma subclasse sem redefinir todos os métodos abstratos:
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
A classe Child
preservou o estado da Classe Abstrata porque o second_method
não foi redefinido e a classe ABC
existe na hierarquia de herança.
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()
Nota
As classes e métodos abstratos existem para fornecer uma estrutura de classe rigorosa.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 2.78
Método Abstrato
Deslize para mostrar o menu
Método Abstrato é um método que deve ser redefinido em subclasses.
Para criar um método abstrato, você deve importar o decorador @abstractmethod
da biblioteca abc
.
from abc import ABC, abstractmethod
Nota
Atenção: o decorador é importado sem o símbolo
@
.
12345678from abc import ABC, abstractmethod class SomeClass(ABC): @abstractmethod def some_method(): pass instance = SomeClass() # TypeError
Os métodos abstratos devem ser implementados nas subclasses. Você não pode criar uma subclasse sem redefinir todos os métodos abstratos:
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
A classe Child
preservou o estado da Classe Abstrata porque o second_method
não foi redefinido e a classe ABC
existe na hierarquia de herança.
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()
Nota
As classes e métodos abstratos existem para fornecer uma estrutura de classe rigorosa.
Obrigado pelo seu feedback!