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
