O código quebra quando transformo o método em privado
class Conta:
def __init__(self, numero, titular, saldo, limite):
print("Construindo objeto...{}".format(self))
self.__numero = numero
self.__titular = titular
self.__saldo = saldo
self.__limite = limite
self.__disponivel = self.__saldo + self.__limite
def extrato(self):
print("Titular: {}".format(self.__titular))
print("Saldo na conta:R${}".format(self.__saldo))
def deposito(self, valor):
self.__saldo += valor
print("Conta creditada no valor de R${}".format(valor))
def saque(self, valor):
if (self.__disponivel(valor)):
self.__saldo -= valor
print("Conta debitada no valor de R${}".format(valor))
else:
print("Valor soliticado ultrapassa o limite da conta")
def transferir(self, destino, valor):
self.saque(valor)
if (self.__disponivel(valor)):
destino.deposito(valor)
def __disponivel(self, valor_saque):
disponivel = self.__saldo + self.__limite
return valor_saque <= disponivel
@property
def saldo(self):
return self.__saldo
@property
def titular(self):
return self.__titular.title()
@property
def limite(self):
return self.__limite
@property
def numero(self):
return self.__numero
@limite.setter
def limite(self, limite):
self.__limite = limite
@saldo.setter
def saldo(self, saldo):
C:\Users\user\OneDrive\Programação\Python 3 OO>python3
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from conta import *
>>> conta2 = Conta(125, "Steppat", 100, 1000.5)
Construindo objeto...<conta.Conta object at 0x04CB2530>
>>> conta = Conta(123, "Carlos", 50.5, 1000.5)
Construindo objeto...<conta.Conta object at 0x04CD6170>
>>> conta.transferir(conta2, 3000)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\user\OneDrive\Programação\Python 3 OO\conta.py", line 26, in transferir
self.saque(valor)
File "C:\Users\user\OneDrive\Programação\Python 3 OO\conta.py", line 20, in saque
if (self.__disponivel(valor)):
TypeError: 'float' object is not callable
porem ao tirar do privado volta a funcionar
de __disponivel para disponivel