__init__ e __post_init__ em dataclasses
This commit is contained in:
27
aula159.py
27
aula159.py
@@ -8,24 +8,31 @@
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass(init=False)
|
||||||
class Pessoa:
|
class Pessoa:
|
||||||
nome: str
|
nome: str
|
||||||
sobrenome: str
|
sobrenome: str
|
||||||
|
|
||||||
@property
|
def __init__(self, nome, sobrenome):
|
||||||
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.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__':
|
if __name__ == '__main__':
|
||||||
p1 = Pessoa('Luiz', 'Otávio')
|
p1 = Pessoa('Luiz', 'Otávio')
|
||||||
p1.nome_completo = 'Maria Helena'
|
|
||||||
print(p1)
|
print(p1)
|
||||||
print(p1.nome_completo)
|
print(p1.nome_completo)
|
||||||
|
|||||||
Reference in New Issue
Block a user