Bom dia!
Estou com dificuldade de entender o seguinte:
Se protegemos as variáveis para que não seja simples acessá-las, qual o sentido de criar uma "propriedade" para deixar as variáveis como se não tivessem protegidas?
Bom dia!
Estou com dificuldade de entender o seguinte:
Se protegemos as variáveis para que não seja simples acessá-las, qual o sentido de criar uma "propriedade" para deixar as variáveis como se não tivessem protegidas?
Execelente pergunta Filipe, isso tem haver com um conceito de orientação a objetos chamado "Encapsulamento", existem muitas vantagens em encapsular seu atributo.
Vale resaltar que o que permite a alteração é a property "setter" que não é sempre necessario que seja inserida no codigo, segue um exemplo de um codigo onde apenas inseri o "@property" (getter) e tentei alterar a variavel "base" (em branco) e em seguida ocorreu um erro.
)
Agora perceba o que aconteceu com a altura que não recebe essa mesma property (getter):
O codigo se mantem caso eu faça uma alteração, ou seja está totalmente desprotegia e sem validação.
Perceba também no exemplo a seguir, que mesmo com o setter sua aplicação ficara mais segura pois ao definir ou redefinir um atributo onde ele foi aplicado, você consegue fazer validações, como no exemplo abaixo que verifica se o valor é maior que zero, caso contrario mostra uma mensagem.
DICA! Segue um artigo que explica muito bem isso, usando Python
Espero que ajude, bons estudos!
Muito bem explicado! Entendi perfeitamente e acredito que tenha ajudado outras pessoas também com a mesma dúvida.
Me ajudou muito. Obrigado!