1
resposta

Dúvidas com static method

Entendi por que utilizamos static methods, mas por quê precisamos colocar no __init__:

if self.UrlEhValida(url)

Ao invés de

if UrlEhValida(url)

Sendo que é um método estático que não necessita do "self"?

PS. Quando coloco no init o segundo código (sem o self) ele aponta que "UrlEhValida" is not defined...

1 resposta

Bom dia, Lucas!

Precisamos colocar o self porque este método está dentro da classe correspondente. Se não adicionar o self dentro da classe, ele tentará utilizar uma função que ele espera estar definida fora da classe, mas não está, aparecendo o erro que você viu. O self neste caso serve para falar ao python que você está utilizando um método que está dentro da sua classe e não fora. Acredito, porém sem certeza (se quiser testar e falar num comentário posterior), que se você fizesse nome_da_classe.UrlEhValida(url) ao invés de self.UrlEhValida(url) ele também funcionaria.

Espero ter ajudado! Bons estudos e um abraço!