Importante

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!

1
resposta

[Dúvida] Print com conteúdo vazio

O print do meu código está retornando com conteúdo vazio (sem as variáveis 'Praça', 'Gourmet', 'Pizza Express', 'Italiana').

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

restaurante_praca = Restaurante('Praça', 'Gourmet')
restaurante_pizza = Restaurante('Pizza Express', 'Italiana')

restaurantes = [restaurante_praca, restaurante_pizza]

print(vars(restaurante_praca))
print(vars(restaurante_pizza))

Retorno:

PS F:\ALURA\Python\Python - crie a sua primeira aplicacao\oo-sabor-express> python modelos\restaurante.py
{'nome': '', 'categoria': '', 'ativo': False}
{'nome': '', 'categoria': '', 'ativo': False}

ps. Não estou conseguindo subir imagens no fórum.

1 resposta

Olá Alexandre.
Tudo bem?
Há um pequeno erro no seu código que resulta no resultado vazio.
Independentemente dos valores passados na criação do objeto, os atributos sempre recebem strings vazias.

def __init__(self, nome, categoria):
    self.nome = ''
    self.categoria = '' 
    self.ativo = False

Você deve atribuir os parâmetros aos atributos da instância.
Exemplo:

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

restaurante_praca = Restaurante('Praça', 'Gourmet')
restaurante_pizza = Restaurante('Pizza Express', 'Italiana')

print(vars(restaurante_praca))
print(vars(restaurante_pizza))

Faça as mudanças ai e veja o resultado.
Avise alguma duvida.
Bons estudos.