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

No final do video não faltou o self?

depois que fizemos o validador_URL e colocamos no extrator_URL deixamos assim:

def valida_url(self):
        if not self.url:
            raise ValueError("URL invalida")

        padrao_url = re.compile('(http(s)?://)?(www.)?bytebank.com(.br)?/cambio')
        match = padrao_url.match(url) <---duvida 
        if not match:
            raise ValueError('A url não é Valida.')

O problema é que se eu colocar uma url não valida oNameError: name 'url' is not defined acho que faltou justamente o self.

def valida_url(self):
        if not self.url:
            raise ValueError("URL invalida")

        padrao_url = re.compile('(http(s)?://)?(www.)?bytebank.com(.br)?/cambio')
        match = padrao_url.match(self.url) <---Correto
        if not match:
            raise ValueError('A url não é Valida.')

Esta certo o meu raciocínio ? pois esta funcionando mas não sei se falta mais alguma coisa.

2 respostas

tenho a mesma dúvida levantada pelo Paulo, e acrescento uma pergunta, como não deu erro erro no código do professor?

solução!

Oi pessoal! Sim, no vídeo eu esqueci de adicionar o self, e corrigimos isso como pode ser visto no "Faça como eu fiz": https://cursos.alura.com.br/course/string-python-extraindo-informacoes-url/task/91895

A "pegadinha" de ter funcionado é porque no código existia uma variável global "url" declarada lááá embaixo (fora da nossa classe), e é por isso que o código não deu erro em padrao_url.match(url)!