Eu ainda não consigo entender muito bem o que são essas três funcionalidades e para o que servem.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Eu ainda não consigo entender muito bem o que são essas três funcionalidades e para o que servem.
Oi, Federico! Tudo bem?
O Setter é um método que permite alterar o valor de um atributo de uma classe. Ele é utilizado quando queremos definir um novo valor para um atributo específico. Por exemplo, imagine uma classe "Pessoa" com o atributo "idade". Utilizando um Setter, podemos definir um novo valor para esse atributo, como por exemplo, "pessoa.set_idade(30)".
O Getter, por sua vez, é um método que permite acessar o valor de um atributo de uma classe. Ele é utilizado quando queremos obter o valor de um atributo específico. Continuando com o exemplo da classe "Pessoa", utilizando um Getter, podemos obter o valor do atributo "idade", como por exemplo, "idade = pessoa.get_idade()".
Já o Property é uma funcionalidade do Python que permite criar métodos especiais para acessar e modificar atributos de uma classe, como se fossem atributos normais. Ele combina as funcionalidades de Getter e Setter em um único método. Por exemplo, podemos definir um Property chamado "idade" que permite acessar e modificar o atributo "idade" da classe "Pessoa" de forma mais simples, como se fosse um atributo comum. Assim, em vez de utilizar os métodos "get_idade()" e "set_idade()", podemos simplesmente utilizar "pessoa.idade" para acessar ou modificar o valor.
A vantagem do Property em relação aos métodos Getter e Setter é que ele proporciona uma sintaxe mais limpa e intuitiva, tornando o código mais legível e fácil de entender. Além disso, o Property permite adicionar lógica personalizada ao acesso e modificação dos atributos, o que pode ser útil em determinadas situações.
Em resumo, de forma mais lúdica, o Getter é um "pegador" de valores, em que, imaginando que temos um objeto que guarda informações, o getter é como uma mãozinha que pega e entrega uma dessas informações quando pedimos. Exemplo: temos um objeto que representa uma pessoa, e o getter pega o nome dessa pessoa quando pedimos.
Já o Setter é um "configurador" de valores. De forma que, imaginando que queremos mudar o nome dessa pessoa, o setter é como uma mãozinha que ajuda a configurar um novo valor para o nome. Exemplo: Usando o mesmo objeto da pessoa, o setter ajuda a mudar o nome.
Por fim, o Property é uma maneira mais fácil de pegar e configurar valores. Imaginando que queremos pegar e configurar o nome da pessoa sem precisar chamar dois métodos diferentes, a property é como uma mãozinha que faz isso de forma mais direta. Exemplo: Continuando com o objeto da pessoa, a property simplifica a leitura e escrita do nome.
Espero ter ajudado na compreensão! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!
Um forte abraço e bons estudos!