From 009f28bb5a41ed1224f0cd61a33329d6b7f320be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Ot=C3=A1vio?= Date: Sat, 3 Dec 2022 09:13:44 -0300 Subject: [PATCH] =?UTF-8?q?Valores=20padr=C3=A3o=20e=20field=20em=20datacl?= =?UTF-8?q?asses?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aula159.py | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/aula159.py b/aula159.py index 1938300..020fc32 100644 --- a/aula159.py +++ b/aula159.py @@ -1,22 +1,19 @@ -# dataclasses - O que são dataclasses? -# O módulo dataclasses fornece um decorador e funções para criar métodos como -# __init__(), __repr__(), __eq__() (entre outros) em classes definidas pelo -# usuário. -# Em resumo: dataclasses são syntax sugar para criar classes normais. -# Foi descrito na PEP 557 e adicionado na versão 3.7 do Python. +# Valores padrão e field em dataclasses # doc: https://docs.python.org/3/library/dataclasses.html -from dataclasses import asdict, astuple, dataclass +from dataclasses import dataclass, field @dataclass class Pessoa: - nome: str - sobrenome: str + nome: str = field( + default='MISSING', repr=False + ) + sobrenome: str = 'Not sent' + idade: int = 100 + enderecos: list[str] = field(default_factory=list) if __name__ == '__main__': - p1 = Pessoa('Luiz', 'Otávio') - print(asdict(p1).keys()) - print(asdict(p1).values()) - print(asdict(p1).items()) - print(astuple(p1)[0]) + p1 = Pessoa() + # print(fields(p1)) + print(p1)