From 482d63696989cdd52248bcc6fc15fb9e8184925e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Ot=C3=A1vio?= Date: Sat, 3 Dec 2022 08:01:29 -0300 Subject: [PATCH] __init__ e __post_init__ em dataclasses --- aula159.py | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/aula159.py b/aula159.py index ce8d96d..b8cf055 100644 --- a/aula159.py +++ b/aula159.py @@ -8,24 +8,31 @@ from dataclasses import dataclass -@dataclass +@dataclass(init=False) class Pessoa: nome: str sobrenome: str - @property - def nome_completo(self): - return f'{self.nome} {self.sobrenome}' - - @nome_completo.setter - def nome_completo(self, valor): - nome, *sobrenome = valor.split() + def __init__(self, nome, sobrenome): self.nome = nome - self.sobrenome = ' '.join(sobrenome) + self.sobrenome = sobrenome + self.nome_completo = f'{self.nome} {self.sobrenome}' + + def __post_init__(self): + print('POST INIT') + + # @property + # def nome_completo(self): + # return f'{self.nome} {self.sobrenome}' + + # @nome_completo.setter + # def nome_completo(self, valor): + # nome, *sobrenome = valor.split() + # self.nome = nome + # self.sobrenome = ' '.join(sobrenome) if __name__ == '__main__': p1 = Pessoa('Luiz', 'Otávio') - p1.nome_completo = 'Maria Helena' print(p1) print(p1.nome_completo)