2
respostas

[Dúvida] valor padrão sem retornar quando importado

Definindo um valor padrão para os atributos funciona normalmente se eu crio o objeto no mesmo arquivo ou executo ambos diretamente no mesmo console, mas quando importo para outro arquivo e tento criar um objeto nele sem definir valores nos atributos que possuem valor padrão, ele me retorna este erro:

TypeError                                 Traceback (most recent call last)
Input In [15], in <cell line: 3>()
      1 conta = Conta(321, "Nico", 55.5, 1000.0)
----> 3 conta2 = Conta(174, "Solas", 135.7)
      5 conta3 = Conta(691, "Amanda", 450.9, 2500.0)

TypeError: Conta.__init__() missing 1 required positional argument: 'limite'
2 respostas

@Oliver, você poderia postar o código da sua classe Conta?

Oliver, no init o limite já está com um valor padrão? Pergunto isso porque só não deveria ter o problema na criação da conta2 se esse valor não estiver definido.

Exemplo:

class Conta:
    def __init__(self, numero, titular, saldo, limite = 0):
        self.numero = numero
        self.titular = titular
        self.saldo = saldo
        self.limite = limite

Desse jeito, quando você fizesse conta2 = Conta(174, "Solas", 135.7) não daria ruim porque o default do limite foi definido no init e quando você fizesse conta2.limite o resultado seria 0.

Observação: como visto no curso, é interessante que os atributos da classe sejam definidos como privados, mas os declarei como públicos para simplificar.