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?
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?
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?