Boa tarde,
implementei seguinte código para o desafio opcional de ler as datas:
class Data:
def __init__(self, dia=1, mes=1, ano=2000):
# print("Construindo objeto {}".format(self))
# atributos da classe Data
self.dia = dia
self.mes = mes
self.ano = ano
# métodos
def formatada(self):
# print("{}/{}/{}".format(self.dia, self.mes, self.ano))
print(f'{self.dia:02d}/{self.mes:02d}/{self.ano}')
Observe que coloquei duas formas de print(). Tenho duas perguntas simples que talvez possam me ajudar:
1) Posso usar o código abaixo sem medo, certo?
Data(1,11,2007).formatada()
ou é sempre uma boa prática chamar uma referência para o objeto e depois aplicar o método?
2) No código acima, se eu usar o código:
Data(01,11,2007).formatada()
aparecerá um erro
File "<input>", line 1
Data(01,11,2007).formatada()
^
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
Em um programa formal, eu sempre devo me preocupar em filtrar essa entrada e remover os zeros da esquerda do número?
Obrigado e até mais!
Atenciosamente, Diogo Costa