2
respostas

Print nome da instância

Galera, toda vez que for dar um print e o nome da instância/classe, será necessário usar o vars para aparecer o valor?

2 respostas

Oi, Fabio! Tudo bem?

Para exibir os valores dos atributos de uma instância de uma classe em Python, não precisamos necessariamente usar a função vars(). No entanto, o print padrão de uma instância de classe geralmente mostra apenas o endereço de memória, a menos que seja definido um método especial na classe para formatar a saída.

Para resolver isso, então, podemos usar o método especial __str__ ou __repr__ na definição da nossa classe. Esses métodos permitem que a forma como a instância é exibida quando usamos print() seja personalizada. Aqui está um exemplo prático de como podemos fazer isso:

class Restaurante:
    def __init__(self, nome, categoria, ativo=True):
        self.nome = nome
        self.categoria = categoria
        self.ativo = ativo

    def __str__(self):
        return f"Restaurante(nome={self.nome}, categoria={self.categoria}, ativo={self.ativo})"

# Criando instâncias da classe Restaurante
restaurante_praca = Restaurante(nome='Praça', categoria='Gourmet', ativo=False)
restaurante_pizza = Restaurante(nome='Pizza', categoria='Fast Food')

# Exibindo as instâncias
print(restaurante_praca)
print(restaurante_pizza)

Ao executar este código, a saída será:

Restaurante(nome=Praça, categoria=Gourmet, ativo=False)
Restaurante(nome=Pizza, categoria=Fast Food, ativo=True)

Com isso, não precisamos usar vars() para exibir os valores dos atributos.

Espero ter ajudado!

Um forte abraço e bons estudos!

Uma dúvida, quando eu rodo o programa fora de funções ele funciona. Mas quando crio duas funções parece que o "verificar senha" não está tendo acesso ao valor do escolha_senha. Como faço para pegar o valor de uma função e colocar em outro?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade