1
resposta

O "abstractclassmethod" foi preterido

Ao fazer o código do módulo 02. de Python (avance na orientação objetos e consuma API), aula de polimorfismo, foi citado que usassemos o abstractclassmethod para manejar as funções que vão ter diferentes aplicações a depender de sua classe.

O Vscode acusou que o abstractclassmethod foi preterido e que se deve usar o classmethod no lugar. Adaptei fazendo o seguinte import "from abc import ABC; classmethod" e utilizei o "@classmethod" em cima da função. O resto foi práticamente igual e o código funcionou.

Se existe outra maneira de utilizar o abstractclassmethod gostaria de saber.

1 resposta

Olá, Leonardo! Tudo bem?

Que bom que você está explorando a orientação a objetos em Python!

Sobre a sua dúvida, o abstractclassmethod realmente foi preterido (deprecated) e a abordagem que você usou está correta. No Python, a forma mais atual de indicar que um método de classe é abstrato é combinando o @abstractmethod com o @classmethod.

Aqui está um exemplo de como você pode fazer isso:

from abc import ABC, abstractmethod

class MinhaClasseAbstrata(ABC):

    @classmethod
    @abstractmethod
    def meu_metodo_abstrato(cls):
        pass

Nesse exemplo, meu_metodo_abstrato é um método de classe abstrato. Qualquer classe que herde de MinhaClasseAbstrata precisará implementar meu_metodo_abstrato.

A combinação de @abstractmethod com @classmethod é a forma recomendada para criar métodos de classe abstratos em Python atualmente. Espero que isso ajude a esclarecer sua dúvida!

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.