class Data:
def __init__(self,dia:str,mes:str,ano:str) -> None:
self.dia = dia
self.mes = mes
self.ano = ano
def formata_data(self):
print(f"{self.dia:02d}/{self.mes:02d}/{self.ano}")
class Data:
def __init__(self,dia:str,mes:str,ano:str) -> None:
self.dia = dia
self.mes = mes
self.ano = ano
def formata_data(self):
print(f"{self.dia:02d}/{self.mes:02d}/{self.ano}")
Olá Maria, tudo bem com você?
Meus parabéns pela implementação do código, fico feliz que tenha compartilhado com a comunidade do fórum Alura.
Gostaria de aproveitar a oportunidade e sugerir uma modificação do uso das dicas de tipo (Type Hints) usadas para informar o usuário sobre qual o tipo de atributo esperado na criação de um objeto Data, no código é informado para o usuário que é esperado valores do tipo str
, já no método formata_data
é aplicado a formatação do valor da data, mas é esperado que o valor do atributo seja do tipo int
, representado pela letra d
na formatação da string.
Caso ocorra a criação de um objeto usando atributos do tipo str
e o método formata_data
for chamado será levantado o erro ValueError: Unknown format code 'd' for object of type 'str' informando que não foi possível aplicar a formatação.
Por exemplo, se utilizarmos o seguinte código abaixo criando o objeto Data
com strings, o erro será gerado:
Data("9", "9", "2022").formata_data()
Erro gerado:
ValueError: Unknown format code 'd' for object of type 'str'
Recomendo que mude a dica de tipo informando para o usuário que será necessário criar um objeto usando valores do tipo int
, assim teremos uma coesão nas informações. Como no exemplo abaixo.
def __init__(self, dia: int, mes: int, ano: int) -> None:
E para instanciar o objeto, faremos:
Data(9, 9, 2022).formata_data()
Resultado:
09/09/2022
Vale ressaltar que :02d
formata um inteiro (d) para um campo de largura mínima 2 (2), com preenchimento de zero à esquerda, quando a largura mínima de dois caracteres não for atendida, por isso foi acrescentado o 0 a esquerda do valor 9, pois não tinha largura (tamanho) mínimo de dois caracteres.
Na Alura temos um curso dedicado a boas práticas de programação e uso das dicas de tipos no Python, você pode conhecê-lo pelo link a seguir.
Para saber um pouco mais sobre a formatação de string recomendo a leitura do seguinte artigo que irá abordar com mais detalhes sobre as possibilidades de formatação de string:
O conteúdo recomendado acima está em inglês, o uso da língua inglesa é bem comum na área de tecnologia, mas caso não tenha afinidade com essa linguagem, recomendo que utilize o tradutor do navegador para uma melhor compressão.
Lembre-se que pode contar sempre com o fórum Alura, seja para postar o seu desenvolvimento ou para tirar suas dúvidas.
Fico à disposição.
Abraços e bons estudos!