Como criar uma classe abstrata no python?
nos exemplos que encontrei:
importa from abc import ABCMeta,abstractmethod
e define metaclass = ABCMeta
mais mesmo com isso ainda consigo instanciar.
Bom dia amigo
depende do python que você está utilizando a partir da versão 3.4 é dessa forma:
from abc import ABC, abstractmethod
from datetime import date
class Pessoa(ABC):
@abstractmethod
def calcularIdade(self, dataNascimento):
idade = date.today().year - dataNascimento.year
return str(idade) + " anos"
class PessoaFisica(Pessoa):
def __init__(self):
pass
def calcularIdade(self, dataNascimento):
return super().calcularIdade(dataNascimento)
p = PessoaFisica()
print(p.calcularIdade(date(1987,12,14)))
p2 = Pessoa()
print(p2.calcularIdade(date(1987,12,14)))
Resultado:
Boa sorte
1 curtida
minha classe é a seguinte:
class pessoa(ABC):
def init(self):
self.__nome_competo = None
self.__idade = None
self.__CPF = None
self.__RG = None
self.__pais = None
self.__lugar = None
self.__email = None
não possui métodos abstratos então coloquei o “@abstractmethod” encima do “construtor” e funcionou.
class pessoa(ABC):
@abstractmethod
def init(self):
self.__nome_competo = None
self.__idade = None
self.__CPF = None
self.__RG = None
self.__pais = None
self.__lugar = None
self.__email = None