-
Notifications
You must be signed in to change notification settings - Fork 0
/
aula132.py
38 lines (32 loc) · 891 Bytes
/
aula132.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# @property + @setter - getter e setter no modo Pythônico
# - como getter
# - p/ evitar quebrar código cliente
# - p/ habilitar setter
# - p/ executar ações ao obter um atributo
# Atributos que começar com um ou dois underlines
# não devem ser usados fora da classe.
# 🐍🤓🤯🤯🤯🤯
class Caneta:
def __init__(self, cor):
# private protected
self.cor = cor
self._cor_tampa = None
@property
def cor(self):
print('ESTOU NO GETTER')
return self._cor
@cor.setter
def cor(self, valor):
print('ESTOU NO SETTER')
self._cor = valor
@property
def cor_tampa(self):
return self._cor_tampa
@cor_tampa.setter
def cor_tampa(self, valor):
self._cor_tampa = valor
caneta = Caneta('Azul')
caneta.cor = 'Rosa'
caneta.cor_tampa = 'Azul'
print(caneta.cor)
print(caneta.cor_tampa)