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

Parâmetro self

Todo metodo de uma classe Python deve receber, obrigatoriamente, o parâmetro self? Não ficou claro para mim a função desse parâmetro.

1 resposta
solução!

Oi Bruno,

Esse parâmetro é importante porque quando o Python invoca um método, ele sempre passa o objeto como primeiro parâmetro. Mesmo que você não chame o primeiro parâmetro de self, ele será uma instância do objeto da sua classe. Veja:

class Teste:
    def metodo(x):
        print(x)

teste = Teste()
teste.metodo()

Quando você roda esse programa, a saída é:

<__main__.Teste instance at 0x1074f3cb0>

Caso você tente declarar um método sem parâmetros, dessa forma:

class Teste:
    def metodo():
        print("Alura")

teste = Teste()
teste.metodo()

Verá esse erro ao rodar o código:

TypeError: metodo() takes no arguments (1 given)

Mesmo que você não tenha passado nenhum parâmetro, o próprio Python passa o objeto como parâmetro. Por conta disso, é uma boa prática sempre chamar o primeiro parâmetro de self, afinal ele sempre será a instância do objeto em questão.