3
respostas

Utilização Método Estático

class Conta:

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

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

Eu tenho o código acima e quero inserir o atributo banco na função construtora. Como eu faço para utilizar o dicionário declarado na função codigos_bancos() ?

3 respostas

Boa noite Rafael,

Não sei se era bem isso que você tinha em mente mas veja abaixo:

Agora Conta recebe o nome do banco. Este nome utiliza o dicionário para buscar o código do banco que ficará em __banco.

class Conta:

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

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

    @property   
    def banco(self):
        return self.__banco

Se fizermos agora:

conta1 = Conta(12345, "Manoel", 100, 200, 'Caixa')

print(conta1.banco)

O print vai retornar o código "104".

Espero ter ajudado!

Bom dia Felipe, tudo bem ?

Primeiramente, obrigado pelo retorno.

Eu fiquei com uma dúvida, como sou garoto novo na programação kkkkkkkkkk

self.__banco = __class__.codigos_bancos()[banco]

Eu não entendi a utilização do prefixo class antes da função codigos_bancos().

Olá Rafael,

Eu também estou aprendendo, rs. Eu conheci o __class__ no curso "Python 3 - Avançando na orientação a objetos" especificamente no Saiba Mais da Aula 2.

Pelo que havia entendido ele serve para você acessar os métodos que estão dentro da classe, como é o caso de "codigos_banco".

Se você puder, dá uma olhada lá pra ver se você tem o mesmo entendimento que eu tive.

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