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

Teste primeira letra maiúscula dá erro

Coloquei esse código na classe Cliente: class Cliente: def init(self,nome): self.nome = nome def get_nome(self): return self.nome.title()

No console, escrevi os comandos e a resposta esperada era "Paulo", mas deu erro. Nâo entendi o que aconteceu.
from cliente import Cliente

cliente = Cliente ("Marco") cliente.nome 'Marco' cliente.nome = "paulo" cliente.nome 'paulo' cliente.get_nome() Traceback (most recent call last): File "C:\Program Files\JetBrains\PyCharm Community Edition 2022.3.1\plugins\python-ce\helpers\pydev\pydevconsole.py", line 364, in runcode coro = func() File "", line 1, in File "C:\Users\paulo\oo\venv\cliente.py", line 5, in get_nome return self.nome.title() NameError: name 'nome' is not defined

1 resposta
solução!

Olá Eduardo, tudo bem?

Pelo erro apresentado, parece que o problema está relacionado ao fato de que a variável "nome" não foi definida corretamente em algum momento, mas não consegui identificar exatamente qual trecho, o tópico ficou um pouco confuso.

Além disso, para a saída do código ter a primeira letra em maiúsculo, você precisa chamar o método que "get_nome". Veja:

class Cliente:
    def __init__(self, nome):
        self.nome = nome 

    def get_nome(self):
        return self.nome.title()

cliente = Cliente ("marcos")
print(cliente.get_nome()) 

A saída do código seria:

Marcos

Para o python chamar o método "por baixo dos panos", você poderia usar uma property:

class Cliente:
    def __init__(self, nome):
        self._nome = nome 

    @property 
    def nome(self):
        return self._nome.title()

cliente = Cliente("marcos")
print(cliente.nome)

O uso da @property no método nome permite que ele seja acessado como um atributo da instância

Espero ter ajudado :)