Oi Gulherme! Vou tentar ajudar.
Seu método extrato(self)
não precisa de um decorador @property
, pois ele é usado para retornar o valor de atributos sem precisar chamá-los diretamente. Não existe atributo extrato no construtor da sua classe, logo não há necessidade de um @property
.
A forma que você imprimiu a data no método extrato(self)
realmente ficou duplicado. Não há porque você definir valores padrões para os parâmetros dia, mes, ano
(na verdade não precisa nem os definir), pois eles já estão sendo criados no método construtor, com o mesmo valor. O que você pode fazer é excluir essa linha de código: dia=10, mes=8, ano=2021
, e se referir aos próprios atributos da classe. E caso você queira, você também poderia transformar esses atributos em valores que são definidos pelo usuário quando se define o objeto.
No pedaço de código:
def transferir(self, valor, destino):
self.sacar(valor)
self.depositar(valor)
Você não está usando o valor "destino". O que você está fazendo é tirar o valor
da sua conta e depois colocando esse mesmo valor de novo na mesma conta. Lembre-se que self
se refere ao objeto atual. Então destino seria o objeto que o dinheiro iria (esse objeto tem que existir), então você teria que fazer algo como:
def transferir(self, valor, destino):
self.sacar(valor)
destino.depositar(valor)
Onde o objeto de destino agora está utilizado e modificado.
Espero ter ajudado :)