Olá Laura, tudo bem com você?
Existem diversas maneiras de alcançar este objetivo e uma delas é utilizar um argumento padrão. Um argumento padrão em Python é um valor atribuído a um argumento de função usado como um valor padrão, caso nenhum valor seja fornecido pelo usuário ao chamar a função. Exemplo:
def saudacao(nome="amigo"):
print("Olá, " + nome + "!")
saudacao("João") # Olá, João!
saudacao() # Olá, amigo!
No exemplo acima, o argumento nome
possui um valor padrão "amigo". Se nenhum valor for passado para nome ao chamar a função saudacao()
, o valor padrão será usado.
De posse disso, podemos utilizar um argumento padrão denominado imprime
que recebe o valor booleano True
ou False
a depender do momento em que o método é invocado, caso seja dentro do método transfere
o parâmetro imprime
será False
, veja como fica em código:
def deposita(self, valor, imprime=True):
self.__saldo += valor
if imprime:
print(f'Depósito de R$ {valor}')
def saca(self, valor, imprime = True):
if(self.__pode_sacar(valor)):
self.__saldo -= valor
if imprime:
print(f'Saque no valor de R$ {valor}')
else:
print("O valor {} passou o limite".format(valor))
def transfere(self, valor, destino):
self.saca(valor, False)
destino.deposita(valor, False)
print('Transferência realizada')
Dessa forma, ao chamar o método Trasnfere
não será apresentado as mensagens de sacar e depositar. Mas, se esses métodos forem chamados diretamente, seja por meio de objeto.sacar
ou objeto.deposita
, teremos as mensagens sendo impressas.
Espero ter lhe ajudado. Em caso de dúvidas estou à disposição.
Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!