Olá Mauricio, tudo bem com você?
Sem o parâmetro cls
, o método não espera receber argumentos adicionais, pois, quando se trata de um método de classe em Python, o primeiro parâmetro é implicitamente reservado para a própria classe - representado por cls
. Esse parâmetro é passado automaticamente por baixo dos panos.
Quando chamamos o método de classe sem incluir o parâmetro cls
em sua definição, o Python interpreta erroneamente que o método foi projetado para não receber argumentos adicionais, resultando em um conflito entre os argumentos passados e os esperados. Isso é o que causa o erro TypeError: ContaBancaria.ativar_conta() takes 1 positional argument but 2 were given.
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!