Olá, estou tentando executar o código abaixo mas um erro é exibido. Poderiam me ajudar em identificar o erro?
# -*- coding: UTF-8 -*-
# calculador_de_impostos.py
class Calculador_de_impostos(object):
def realiza_calculo(self, orcamento, calcula_imposto):
valor = calcula_imposto(orcamento)
print(valor)
if (__name__ == '__main__'):
from orcamento import Orcamento
from impostos import ISS, ICMS
orcamento = Orcamento(500.0)
calculador_de_impostos = Calculador_de_impostos()
calculador_de_impostos.realiza_calculo(orcamento, ICMS().calcula_ICMS) # imprime 50.0
calculador_de_impostos.realiza_calculo(orcamento, ISS().calcula_ISS) # imprime 30.0
# -*- coding: UTF-8 -*-
# impostos.py
class ICMS(object):
def calcula_ICMS(orcamento):
return orcamento.valor * 0.1
class ISS(object):
def calcula_ISS(orcamento):
return orcamento.valor * 0.06
# -*- coding: UTF-8 -*-
# orcamento.py
class Orcamento(object):
def __init__(self, valor):
self.__valor = valor
@property
def valor(self):
return self.__valor
Mensagem de erro:
C:\Python37\python.exe "C:/Users/Roger/OneDrive/Cursos/Carreira - Python/Design Patterns/calculador_de_impostos.py"
Traceback (most recent call last):
File "C:/Users/Roger/OneDrive/Cursos/Carreira - Python/Design Patterns/calculador_de_impostos.py", line 16, in <module>
calculador_de_impostos.realiza_calculo(orcamento, ICMS().calcula_ICMS) # imprime 50.0
File "C:/Users/Roger/OneDrive/Cursos/Carreira - Python/Design Patterns/calculador_de_impostos.py", line 7, in realiza_calculo
valor = calcula_imposto(orcamento)
TypeError: calcula_ICMS() takes 1 positional argument but 2 were given
Process finished with exit code 1