Olá! Durante as aulas de OO com Python, foi implementado um método na classe Conta chamado transferir, como abaixo:
class Conta:
//omitindo código
def deposita(self, valor):
self.__saldo += valor
def saca(self, valor):
self.__saldo -= valor
def transferir(self, valor, destino):
self.saca(valor)
destino.deposita(valor)
É possível definir um tipo para parâmetro destino no método transferir para impedir que qualquer um que use este método não passe qualquer coisa ali, já que nele é invocado um método deposita, pois se for informado qualquer coisa que não possui esse método vai ocorrer um erro, e seguindo a lógica do negócio, o método espera um destinatário que seja uma instancia da classe Conta. Sei que no Python não existe tipagem de valor em atributo, pois é uma característica da linguagem poder ter liberdade de atribuir/retornar qualquer tipo de valor.
Quem puder sanar essa minha dúvida, desde já agradeço!