Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

@staticmethod ?? Pq não fazer um atributo?

porque criamos um método estático para um retorno simples? assim:

class Conta:

    def __init__(self):
    ...
    ...

    @staticmethod
    def codigo_banco():
        return "001"

    @staticmethod
    def codigos_bancos():
        return {'BB':'001', 'Caixa':'104', 'Bradesco':'237'}

ao invés de somente criar atributos na classe? tipo assim:

class Conta:

    codigo_banco = '001'
    codigos_bancos =  {'BB': '001', 'Caixa': '104', 'Bradesco': '237'}


    def __init__(self):

como sitado na aula 6, atividade 11, de python 3: OO!

1 resposta
solução!

Olá Henrique!

Criamos os métodos estáticos para coisas simples justamente pela simplicidade que temos em invoca-los.

Quando fazemos da primeira maneira (com @staticmethod) não precisamos criar uma instancia da classe para acessar aquele método.

Podemos só chamar ele quando necessário.

Já quando fazemos da segunda forma usando atributos precisamos instanciar a classe. Só que não queremos instanciar só para pegar aqueles valores entende? Acaba dando uma volta desnecessária (alocando espaço na memória que não será utilizado).

Quando você tem uma classe desse tipo que só tem métodos estáticos que retornam um valor fixo vale a pena você migrar para os Enum's:

https://docs.python.org/3/library/enum.html

Espero que tenha ajudado!

Bons estudos! ^^

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software