class Conta:
# __init__ chamada de funcao construtora
def __init__(self,numero,titular, saldo, limite):
#funcao construtora
print("construindo ojjecto {}".format(self))
#self = faz referencia ao objecto dentro da memoria
# esses dois underline vc nao consegue acessar o valor diretamente, vai ter de fazer pelo metodo boas praticas __numero
#chama-se encapasylamento
self.__numero = numero
self.__titular = titular
self.__saldo = saldo
self.__limite = limite
#methods = funções dentro de uma classe se chamam metodos
def extrato(self):
print(f" Saldo {self.__saldo} {self.__titular}")
def deposita(self, valor):
self.__saldo += valor
def saca(self, valor):
self.__saldo -= valor
def transfere(self, valor, destino):
#o self representa a conta nossa como uma origem
self.saca(valor)
destino.deposita(valor)
print(f"Transfered {valor} from {self.__titular} to {destino.__titular} with sucess!")
>>> conta1.transfere(10.0, conta)
Transfered 10.0 from lucas to lucas with sucess!
>>> conta1 = Conta(123,"ronado",55.5, 1000.0)
construindo ojjecto <conta.Conta object at 0x0000017D37359490>
>>> conta1.transfere(10.0, conta)
Transfered 10.0 from ronado to lucas with sucess!
>>>