Olá!
Fiz exatamente como está no vídeo mas me dá um TypeError que não sei onde estou errando:
impostos.py
class ICMS(object):
def calcula(orcamento):
return orcamento.valor * 0.1
class ISS(object):
def calcula(orcamento):
return orcamento.valor * 0.06
-----
calculador_de_impostos.py
from impostos import ISS, ICMS
class Calculador_de_impostos(object):
def realiza_calculo(self, orcamento, imposto):
imposto_calculado = imposto.calcula(orcamento)
print(imposto_calculado)
if __name__ == '__main__':
from orcamento import Orcamento
calculador = Calculador_de_impostos()
orcamento = Orcamento(500.0)
calculador.realiza_calculo(orcamento, ISS())
calculador.realiza_calculo(orcamento, ICMS())
----
Traceback (most recent call last):
File "C:/Users/felipedias/PycharmProjects/designerPattern/calculador_de_impostos.py", line 15, in <module>
calculador.realiza_calculo(orcamento, ISS())
File "C:/Users/felipedias/PycharmProjects/designerPattern/calculador_de_impostos.py", line 6, in realiza_calculo
imposto_calculado = imposto.calcula(orcamento)
TypeError: calcula() takes 1 positional argument but 2 were given
Obrigado