__init__ e __post_init__ em dataclasses

This commit is contained in:
Luiz Otávio
2022-12-03 08:01:29 -03:00
parent 897e512fa3
commit 482d636969

View File

@@ -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)