1
resposta

self como parâmetro.

Olá,

Não consegui entender a parte do "*não recebeu self como parâmetro."

Em exibe_nome_e_sobrenome(): está com os parametros self.nome, self.sobrenome na função print, então fiqui confuso.

Por gentileza, consegue me esclarecer?

Abs,

1 resposta

Olá Thiago, tudo bem com você?

Quando estamos trabalhando com métodos no Python, e queremos definir que este recebe um ou mais parâmetros, devemos informar os parâmetros dentro dos parênteses que ficam após o nome do método. Seguindo a sintaxe apresentada abaixo.

def nome_do_metodo(parametro_1, parametro_2):

No exercício, é apresentado o método exibe_nome_e_sobrenome():

def exibe_nome_e_sobrenome():
    print("{0} {1}".format(self.nome, self.sobrenome))

Note que entre os parênteses após o nome do método, não foi declarado o parâmetro self. Como o self não foi fornecido dentro dos parênteses, ele não fica disponível para uso dentro do método exibe_nome_e_sobrenome. Assim, quando o usuário declara a função print(), está ocorrendo a tentativa de uso do parâmetro self, mas esse parâmetro não foi declarado no método exibe_nome_e_sobrenome, assim não ficará disponível para uso, gerando erro ao executar o código.

Devemos declarar que este método recebe o parâmetro self, a correção ficará como apresentada abaixo.

def exibe_nome_e_sobrenome(self):
    print("{0} {1}".format(self.nome, self.sobrenome))

Quando trabalhamos com classe em Python, o primeiro parâmetro de um método por convenção deve ser o parâmetro self, que representa o local de memória onde o objeto foi salvo.

Em resumo temos, para definir que um método recebe um parâmetro devemos declarar o nome do parâmetro entre os parênteses após o nome do método.

Espero ter ajudado. Em caso de dúvidas estou à disposição.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!