1
resposta

[Dúvida] Como fazemos caso o método representado pelo setter tenha que passar mais de um atributo entre os parênteses?

Na aula vimos que a propriedade @nome.setter funciona após fazermos a atribuição self.nome = nome

@nome.setter
def nome(self, nome):
    print("chamando setter nome()")
    self.__nome = nome

Mas como deveríamos fazer essa atribuição no caso de termos mais atributos entre parênteses?

Por exemplo, se tivessemos algo como def nome( self, nome, idade, peso) ?

1 resposta

Olá Paulo,

Não seria uma boa prática definir um único setter para vários atributos de um objeto. O indicado é cria um setter para cada atributo, e verificar se ele faz sentido no contexto do código que você está construindo. Isso também permite que para cada setter seja implementada uma lógica aplicável à aquele atributo. Segue um exemplo:

@idade.setter
def idade(self, idade):
    if idade < 18:
        print(Não é possível inserir idade menor que 18 anos)
    else:
        self.__idade = idade

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software