1
resposta

o meu pycharm "reclama" quando eu passo o parametro com o msm nome do atributo no setter

o prof recomendou assim e reclamou

@limite.setter def limite(self,limite): self.__limite = limite


eu "corrigi" e ficou assim, esta errado?

@limite.setter def limite(self,NovoLimite): self.__limite = NovoLimite


codigo completo

class Conta:

def __init__(self,numero,titular,saldo,limite) -> object:
    print(f'construindo objeto...{self}')
    self.__numero = numero
    self.__titular = titular
    self.__saldo = saldo
    self.__limite = limite

def extrato(self):
    print(f'saldo de {self.__saldo} do titular {self.__titular}')

def saca(self,valor):
    self.__saldo -= valor

def deposita(self,valor):
    self.__saldo += valor

def transfere(self,valor,destino):
    self.saca(valor)
    destino.deposita(valor)

@property
def saldo(self):
    return self.__saldo

@saldo.setter
def saldo(self,NovoSaldo):
    self.__saldo = NovoSaldo

@property
def limite(self):
    return self.__limite

@limite.setter
def limite(self, NovoLimite):
    self.__limite = NovoLimite
1 resposta

Olá Leonardo! Tudo certo? Espero que sim. 🙂

Não há problema em fazer a mudança de limite para NovoLimite. Vamos analizasr o seguinte trecho de código:

@limite.setter
def limite(self, limite):
    self.__limite = limite

O parâmetro limite não é o mesmo do atributo self.__limite. Tanto a preseça do self., quanto o "__", diferencia ambos um do outro. Contudo, para tornar o código mais claro e auto explicativo, mudar o nome do parâmetro limite para NovoLimite pode ser uma boa prática de código.

Só devo ressaltar que, ao programar em python, existe a padronização de escrever as variáveis em snake case, ou seja, letras minúsculas e separadas por "_". Dessa forma, o parâmetro ficaria: "novo_limite".

Espero ter ajudado! Quaisquer dúvidas, estou à disposição. 😉

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!