1
resposta

Dúvida array da Classe Restaurantes

Fiquei com uma dúvida: no construtor quando ele coloca a instância da vez dentro do array, qual seria o problema de invés de colocar "Restaurantes.restaurantes.append(self)" colocar "(restaurantes.append(self)"

Basicamente, tirar o nome da classe da frente, já que ela já estaria ali dentro.

1 resposta

Oi, Mauricio! Tudo bem?

A diferença principal aqui está relacionada ao escopo e à forma como a variável restaurantes é acessada. Quando utilizamos Restaurante.restaurantes.append(self), estamos acessando a lista restaurantes como um atributo da classe Restaurante, o que é importante porque restaurantes é uma variável de classe, ou seja, ela é compartilhada por todas as instâncias da classe Restaurante. Usar o nome da classe seguido de . é a maneira correta de acessar variáveis de classe em Python.

Por outro lado, se tentarmos usar apenas restaurantes.append(self), o Python vai procurar por uma variável de instância chamada restaurantes dentro do contexto do método __init__, como essa variável não existe no contexto de instância, isso resultaria em um erro.

Portanto, é necessário especificar Restaurante.restaurantes para garantir que você está se referindo à lista de classe que armazena todos os objetos Restaurante criados.

Espero ter ajudado!

Um forte abraço e bons estudos!