Não consegui identificar onde está o erro nesse código:
class ExtratorArgumentoURL:
def __init__(self, url):
if self.urlEhValida(url):
self.url = url.lower()
else:
raise LookupError("url inválida!")
@staticmethod
def urlEhValida(url):
if url and url.startswith('https://www.bytebank.com.br/'):
return True
else:
return False
def extraiArgumentos(self):
buscaMoedaOrigem = "moedaorigem".lower()
buscaMoedaDestino = "moedadestino".lower()
inicioSubstringMoedaOrigem = self.encontraIndiceInicioSubstring(buscaMoedaOrigem)
finalSubstringMoedaOrigem = self.url.find("&")
moedaOrigem = self.url[inicioSubstringMoedaOrigem:finalSubstringMoedaOrigem]
if moedaOrigem == "moedadestino":
self.trocaMoedaOrigem()
indiceInicialMoedaOrigem = self.encontraIndiceInicioSubstring(trocaMoedaOrigem)
indicefinalMoedaOrigem = self.url.find("&")
moedaOrigem = self.url[indiceInicialMoedaOrigem:indicefinalMoedaOrigem]
inicioSubstringMoedaDestino = self.encontraIndiceInicioSubstring(buscaMoedaDestino)
finalSubstringMoedaDestino = self.url.find("&valor")
moedaDestino = self.url[inicioSubstringMoedaDestino:finalSubstringMoedaDestino]
return moedaOrigem, moedaDestino
def retornaValor(self):
buscaValor = "Valor=".lower()
inicioSubstringValor = self.encontraIndiceInicioSubstring(buscaValor)
valor = self.url[inicioSubstringValor:]
return valor
def encontraIndiceInicioSubstring(self, moedaOuValor):
return self.url.find(moedaOuValor) + len(moedaOuValor)
def trocaMoedaOrigem (self, trocaMoedaOrigem):
self.url = self.url.replace("moedadestino", "real", 1)
print(self.url)
Depois tentei imprimir:
from String import ExtratorArgumentoURL
url ="https://www.bytebank.com.br/cambio?moedaorigem=moedadestino&moedadestino=dolar&valor=150"
argumentosURL = ExtratorArgumentoURL
moedaOrigem,moedaDestino = argumentosURL.extraiArgumentos()
valor = argumentosURL.retornaValor()
print(moedaOrigem,moedaDestino,valor)
Apareceu a mensagem:
Traceback (most recent call last): File "C:/py/pycharm/String_aplication.py", line 4, in moedaOrigem,moedaDestino = argumentosURL.extraiArgumentos() TypeError: extraiArgumentos() missing 1 required positional argument: 'self'