Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Recebo o TypeError: must be str, not builtin_function_or_method ao rodar o código abaixo...

class ExtrairArgumentoURL:
    def __init__(self,url):
            if self.stringEhValida(url):
                    self.url = url.lower()
            else:
                  raise lookuperror("URL inválida")

      @staticmethod
      def stringEhValida(url):
            if url:
                  return True
            else:
                  return False

      def encontraMoeda(self):
          busca_moeda_origem = "moedaorigem"
            busca_moeda_destino = "moedadestino"

           indice_origem_inicio =self.encontraIndiceInicioSubstring(busca_moeda_origem)
            indice_origem_fim = self.url.find("&")
            moedaOrigem = self.url[indice_origem_inicio:indice_origem_fim]

            if moedaOrigem == "moedadestino":
                  moedaOrigem = self.verficiaMoedaOrigem(busca_moeda_origem)

            indice_destino_inicio =self.encontraIndiceInicioSubstring(busca_moeda_destino)
            indice_destino_fim= self.url.find("&valor")
            moedaDestino = self.url[indice_destino_inicio:indice_destino_fim]

            return moedaOrigem, moedaDestino

      def encontraIndiceInicioSubstring (self, moeda_valor):
            return self.url.find(moeda_valor) + len(moeda_valor) + 1

      def verficiaMoedaOrigem(self,busca_moeda_origem):
            self.url = self.url.replace("moedadestino","real",1)
            inicioSubstringOrigem = self.encontraIndiceInicioSubstring(busca_moeda_origem)
            finalSubstringOrigem = self.url.find("&")
           return self.url[inicioSubstringOrigem:finalSubstringOrigem]

      def retornaValor(self):
           buscaValor = "Valor".lower
            inicioSubstringValor = self.encontraIndiceInicioSubstring(buscaValor)
            valor = self.url[inicioSubstringValor:]
           return valor

minha_url = ExtrairArgumentoURL("www.bytebank.com.br/cambio?moedaOrigem=moedadestino&moedaDestino=dolar&valor=1500")
moedaOrigem, moedaDestino = minha_url.encontraMoeda()
cambio = minha_url.retornaValor()
print(moedaOrigem, moedaDestino, cambio)
1 resposta
solução!

Já encontrei o problema. Estava faltando () no final da função lower().