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

Declaração de Método Estático.

class Conta:

    def __init__(self, numero, titular, saldo, limite, banco = '001'):
        print("Construindo objeto ... {}".format(self))
        self.__numero = numero
        self.__titular = titular
        self.__saldo = saldo
        self.__limite = limite
        self.__taxa_transferencia = 8.0
        self.__banco = banco

@staticmethod
    def codigo_banco():
        return "001"

Caso eu tenha o código acima, mesmo utilizando o banco como um atributo com valor padrão definido, eu preciso ter o método estático declarado ?

1 resposta
solução!

Oi Rafael, tudo bem?

O método estático é para que você consiga acessar o método sem a necessidade de instanciar um objeto para a classe. Então nesse caso o que você ganha com o método estático é a possibilidade de fazer:

print(Conta.codigo_banco())

Resultado:

001

Observe que não precisamos instanciar a classe Conta para acessarmos o método codigo_banco e é este o benefício de um método estático. Ou seja, ele está ligado a classe Conta e não aos objetos dela.

No seu caso, você declarou um valor padrão para o banco, então não há necessidade do método estático.

Porém, o método estático neste caso é importante para caso o usuário queria saber rapidamente os códigos dos bancos. Pois ele não irá precisar criar um objeto para saber estes valores, basta invocar: Conta.codigo_banco(), uma vez o método codigo_banco se transformará em:

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

Pegou a ideia?

Qualquer dúvida é só falar. Abraços e bons estudos!