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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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?