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

Ao chamar o método extrato pode usar outro método no .format?

No método para verificar extrato estou usando o .title() para garantir as letras maiúsculas no nome do titular.

    def extrato(self):
        print("O saldo do titular {} é de R${}".format(self.__titular.title(), self.__saldo))

mas já fizemos um método para verificar o nome do titular já com essa implementação:

    @property
    def titular(self):
        return self.__titular.title()

Minha dúvida é se tem como chamar o método titular no print do método extrato para já garantir o nome do titular com as iniciais maiúsculas.

1 resposta
solução!

Então Mário,

Boa pergunta! Não tinha pensado nisso.

Testando aqui, eu coloquei o método "Title" dentro do construtor, deste jeito:

class Conta:
    def __init__(self, numero, titular, saldo, limite = 1000.0):
        print("Construido objeto ... {}".format(self))
        self.__numero = numero
        self.__titular = titular.title()
        self.__saldo = saldo
        self.__limite = limite
        self.__tarifaTransferencia = 8.0

Mesmo dentro da declaração de vaiável privada da classe, o nome fica em maiúsculo também, então não tem como dar chabú, veja:

Tela de Variáveis do Pycharm

Os comando foram:

from conta import Conta
conta3 = Conta(1241, "fabio", 100.0, 1000.0)
conta3.extrato()
conta3._Conta__titular

Eps... Se o nome do titular for renomeado no "titular.setter"... bau-au... é preciso colocar o método "Title" lá também:

@titular.setter
def titular(self, titular):
    self.__titular = titular.title()

AGORA VAMOS TRAPACEAR... eu quero que o "@property" fique em maiúsculo e a variável "private" fique em minúsculo, desta forma:

Tela 2 do Pycharm

Retirei o método "Title" do construtor e do "titular.setter", coloquei no "@property" e modifiquei extrato para pegar a variável pelo property e NÃO pela variável privada. Desta forma:

@property
def titular(self):
    return self.__titular.title()
def extrato(self):
    #print("Saldo é {} do titular {}".format(self.__saldo, self.__titular))
    print("Saldo é {} do titular {}".format(self.__saldo, self.titular))

Espero ter ajudado e se ajudei, não esqueça de fechar o tópico e me pontuar... adoro esses pontinhos.

[]'s,

Fabio I.