From 2d7f0aa53e2e8ca0ebbbd415ad80c6c1dc1ad615 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Ot=C3=A1vio?= Date: Tue, 15 Nov 2022 10:23:04 -0300 Subject: [PATCH] =?UTF-8?q?@property=20+=20@setter=20-=20getter=20e=20sett?= =?UTF-8?q?er=20no=20modo=20Pyth=C3=B4nico?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aula132.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 aula132.py diff --git a/aula132.py b/aula132.py new file mode 100644 index 0000000..b704f75 --- /dev/null +++ b/aula132.py @@ -0,0 +1,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)