1
resposta

Desafio opcional da data. Sugestão: pegar a data e hora atual do sistema.

Sugestão: como pegar a data e hora do sistema atual.

Ao criar a Classe de data e hora, no arquivo "datas.py", basta importar a biblioteca datetime e formatar de acordo com o exemplo abaixo:

from datetime import datetime

class Data_Hora:

    def __init__(self):
        print("Construindo objeto ... {}".format(self))

    def data_sistema(self):
        self.data_hora = datetime.now()
        dt = self.data_hora.strftime("%d/%m/%Y %H:%M:%S")
        print("Executado em:", dt)

Depois, no arquivo "conta.py", é possível já imprimir a data/hora direto dos métodos de extrato, saque e depósito da Classe Conta. Não sei se é boa prática fazê-lo desta maneira, mas funciona. Fiz assim:

a) importando a classe de data e hora, inserindo as linhas:

from datas import Data_Hora
d = Data_Hora()

b) colocando a chamada "d.data_sistema()", dentro de cada método da conta. Exemplo no método "extrato":

    def extrato(self):
        print("Saldo de {} do titular {}.".format(self.saldo, self.titular))
        d.data_sistema()

Meu "main.py" ficou assim:

from conta import Conta

conta = Conta(1, "Jack", 1000, 10000)
conta2 = Conta(321, "Marcos", 100.0, 1000.0)

print('')

print('Titular: {}'.format(conta.titular))
conta.extrato()
print('')

conta.deposita(300.0)
conta.extrato()
print('')

conta.saca(100.0)
conta.extrato()
print('')

print('############################')

print(conta2.titular)
conta2.extrato()
print('')

conta2.deposita(250.0)
conta2.extrato()
print('')

conta2.saca(40.0)
conta2.extrato()
print('')

print('############################')

Ficando assim no output:

Construindo objeto ... <datas.Data_Hora object at 0x000001DBF99569D0>
Construindo objeto ... <conta.Conta object at 0x000001DBF9956CA0>
Construindo objeto ... <conta.Conta object at 0x000001DBF9956C40>

Titular: Jack
Saldo de 1000 do titular Jack.
Executado em: 12/07/2023 18:32:09

Depósito de 300.0 para o titular Jack
Executado em: 12/07/2023 18:32:09
Saldo de 1300.0 do titular Jack.
Executado em: 12/07/2023 18:32:09

Saque de 100.0 para o titular Jack
Executado em: 12/07/2023 18:32:09
Saldo de 1200.0 do titular Jack.
Executado em: 12/07/2023 18:32:09

############################
Marcos
Saldo de 100.0 do titular Marcos.
Executado em: 12/07/2023 18:32:09

Depósito de 250.0 para o titular Marcos
Executado em: 12/07/2023 18:32:09
Saldo de 350.0 do titular Marcos.
Executado em: 12/07/2023 18:32:09

Saque de 40.0 para o titular Marcos
Executado em: 12/07/2023 18:32:09
Saldo de 310.0 do titular Marcos.
Executado em: 12/07/2023 18:32:09

############################

Process finished with exit code 0
1 resposta

Olá, Jaques!

Parabéns por compartilhar o seu código e por conseguir implementar a funcionalidade de pegar a data e hora do sistema atual no seu programa em Python. Ficou muito legal!

A sua solução de importar a classe Data_Hora do arquivo datas.py e chamar o método data_sistema() dentro de cada método da classe Conta está correta. Isso permite que a data e hora sejam exibidas junto com as informações do extrato, saque e depósito.

Além disso, a formatação da data e hora utilizando o método strftime() ficou perfeita. Assim, você consegue exibir a data e hora no formato desejado, como "dd/mm/aaaa hh:mm:ss".

No seu arquivo main.py, você criou duas instâncias da classe Conta e chamou os métodos extrato(), deposita() e saca() para cada uma delas. E em cada chamada desses métodos, a data e hora do sistema atual são exibidas corretamente.

O seu código está bem organizado e de fácil compreensão. Continue assim!

Bons estudos!