1
resposta

Atividade 7 - desafio 3

Não entendi a resolução do professor, pois no enunciado pede-se para criar o método de classe chamado "ativar_conta" mas o professor criou como método de instância.

# 3) Adicione um método de classe chamado `ativar_conta` à classe `ContaBancaria` que define o atributo ativo como `True`. Crie uma instância da classe, chame o método de classe e imprima o valor de ativo.

    def ativar_conta(self):
        self._ativo = True
1 resposta

Olá, Sergio! Como vai?

No enunciado da atividade, é solicitado que o método ativar_conta seja um método de classe, mas parece que o professor implementou como um método de instância. Vamos esclarecer a diferença e como você pode implementar um método de classe.

Um método de classe é definido usando o decorador @classmethod e recebe a classe como primeiro argumento, geralmente chamado de cls. Isso permite que o método acesse ou modifique atributos de classe, em vez de atributos de instância.

Para resolver o seu desafio, você pode implementar o método ativar_conta como um método de classe da seguinte forma:

class ContaBancaria:
    _ativo = False

    def __init__(self, titular, saldo):
        self.titular = titular
        self.saldo = saldo

    @classmethod
    def ativar_conta(cls):
        cls._ativo = True

# Criando uma instância da classe
conta = ContaBancaria("Sergio", 1000)

# Chamando o método de classe
ContaBancaria.ativar_conta()

# Imprimindo o valor de ativo
print(ContaBancaria._ativo)

Neste exemplo, o método ativar_conta é um método de classe que altera o atributo _ativo da classe ContaBancaria para True. Assim, ele atende ao que foi solicitado no enunciado.

Espero ter ajudado e bons estudos!

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