Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

meu codigo esta dando erro

olá meu codigo está dando erro from main import ExtratorArgumentosUrl url = 'moedaorigem=real&moedadestino=dolar' argumentoUrl = ExtratorArgumentosUrl(url)

moedaOrigem, moedaDestino = argumentoUrl.extraiArgumentos()

print(moedaOrigem, moedaDestino) Traceback (most recent call last): File "C:\Users\Gabriel\PycharmProjects\pythonOO2.0\pynthon new.py", line 3, in argumentoUrl = ExtratorArgumentosUrl(url) File "C:\Users\Gabriel\PycharmProjects\pythonOO2.0\main.py", line 3, in init if self.urlEhValida(url): TypeError: urlEhValida() missing 1 required positional argument: 'url'

6 respostas

Bom dia Gabriel, tudo bem? Espero que sim!

Confere se na sua classe ExtratorArgumentosUrl o método urlEhValida está escrita da seguinte forma:

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

Com o @staticmethod e sem passar o argumento self na criação da função.

Bons estudos!

sim sim ja tinha colocado dessa maneira

Você consegue mandar aqui como está escrito o seu código da classe ExtratorArgumentosUrl?

O erro está sendo ocasionado no método urlEhValida, que está faltando ser passado um parâmetro para ela. Como você disse que ela já está como staticmethod e não está escrita como def urlEhValida(self, url) e sim def urlEhValida(url), precisaria do código para conseguir ver melhor o que pode ter ocasionado o erro.

class ExtratorArgumentosUrl: def init(self, url): if self.urlEhValida(url): self.url = url else: raise LookupError('Url inválida!!!!!!')

@staticmethod
def urlEhValida(url):
    if url:
        return True
    else:
        return False
def extraiargumentos(self) :
    indiceInicialMoedaDestino = self.url.find('=', 15) + 1
    indiceInicialMoedaOrigem = self.url.find('=') + 1
    indiceFinalMoedaOrigem = self.url.find(' & ')

    moedaOrigem = self.url[indiceInicialMoedaOrigem:indiceFinalMoedaOrigem]
    moedaDestino = self.url[indiceInicialMoedaDestino:]
    return moedaOrigem, moedaDestino
solução!

Coloquei o código da maneira que me mandou e a única coisa que estava errada era o método extraiArgumentos. Ela estava definida com nome todo minúsculo. Ajeitei o nome dela e rodou perfeitamente:

Código rodando, consertando o método

Bons estudos!

Uma outra coisa que pode você precisa corrigir é o indiceFinalMoedaOrigem, ele está com o ' & ' com espaços e devido a isso não está encontrando corretamente o símbolo &, para consertar basta tirar os espaços e deixar da seguinte forma:

indiceFinalMoedaOrigem = self.url.find('&')

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software