🎯 Getters e Setters são Usados em Classes no Python

Em poucas palavras

Definição técnica ou simplificada do conceito.


📝 Notas e Desenvolvimento


🔗 Conexões e Contexto


📚 Referências e Fontes

Citações Diretas

📂 Outros Conteúdos Preservados

Uso:

student = Student(“Harry”, “Gryffindor”)
print(student.house) # Output: Gryffindor

student.house = “Slytherin”
print(student.house) # Output: Slytherin

student.house = “Invalid House” # Isso lEvantaria um ValueError


**Explicação:**

-   `_house`: Usamos `_house` (com um underscore no início) para indicar que este atributo deve ser acessado através dos getters e setters. É uma convenção em Python.
-   `@property`: O decorador `@property` transforma o método `house(self)` em um getter. Agora podemos acessar o valor da casa usando `student.house` (como se fosse um atributo normal).
-   `@house.setter`: O decorador `@house.setter` transforma o método `house(self, house)` em um setter. Agora podemos definir o valor da casa usando `student.house = "Slytherin"`.
-   **Validação:** No setter, verificamos se a casa é válida antes de atribuir o valor. Se a casa for inválida, levantamos uma exceção `ValueError`.

**Vantagens de usar getters e setters:**

-   **Controle:** Você tem controle total sobre como os atributos são acessados e modificados.
-   **Flexibilidade:** Você pode adicionar lógica (como validação) aos getters e setters sem alterar o código que usa a classe.
-   **Manutenção:** Facilita a manutenção e a refatoração do código.

**Referência:**

-   [Página de Classes Python da W3schools](https://www.w3schools.com/python/python_classes.asp)