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,
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,
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!