1
resposta

orientação a objeto python

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

class Conta:

def __int__(self):
     print("construindo objeto {}".format(self))
     self.__agencia         = agencia
     self.__operacao        = operacao
     self.__numero          = numero
     self.__titular         = titular
     self.__saldo           = saldo
     self.__limite          = limite

def extrato(self):
    print("o estrato do titular {} e de {}".format(self.titular, self.saldo))

def deposito(self, valor):
    self.saldo += valor

def __pode_sacar(self, valor_a_sacar):
    saldo_disponivel = valor <= (self.__saldo + self.__limite)
    return valor_a_sacar <= saldo_disponivel

def sacar(self, valor):
    if(self.__pode_sacar(valor)):
        self.saldo -= valor
    else:
        print("o valor {} ultrapassou o limite".format(valor))

def transfere(self, valor, oringem, destino):
    self.sacar(valor)
    destino.deposito(valor)

def get_saldo(self):
    return self.__saldo

def set_limite(self, limite):
    self.__limite = limite

@staticmethod
def codigo_banco():
    return "001"
    
ola tudo bem, eu tentei execultar esse codigo no console do python e deu o erro que aparecu na foto acima.
1 resposta

Ola!

Encontrei alguns pequenos erros de digitacao/sintaxe. observe que o código apresentado possui alguns erros de sintaxe e uma pequena confusão com o uso de letras maiúsculas e minúsculas em alguns métodos.

Aqui estão algumas correções que você pode fazer no código:

O método construtor deve ser chamado init, e não int. Portanto, altere a assinatura do método para def init(self, agencia, operacao, numero, titular, saldo, limite):.

No método extrato, você está referenciando os atributos self.titular e self.saldo. No entanto, esses atributos foram definidos como __titular e __saldo. Portanto, você precisa modificar a impressão para self.__titular e self.__saldo.

No método __pode_sacar, a comparação valor <= (self.__saldo + self.__limite) está usando a variável valor, mas ela não está definida. Você provavelmente queria usar valor_a_sacar em vez disso. Portanto, modifique a linha para saldo_disponivel = valor_a_sacar <= (self.__saldo + self.__limite).

No método transfere, você está chamando self.sacar(valor), mas você está chamando o método sacar diretamente no objeto self. Em vez disso, você precisa chamá-lo no objeto de origem. Portanto, modifique a linha para origem.sacar(valor).

No método transfere, você está usando origem e destino como argumentos, mas eles não foram passados como parâmetros. Portanto, você precisa adicionar esses parâmetros na assinatura do método.

Espero ter ajudado! ABS E bons estudos!