🎯 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
- Atlas: MdC - Programação
- Notas Relacionadas:
📚 Referências e Fontes
Links Externos
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)