Olá, tenho uma dúvida, meu código está funcionando normalmente conforme esperado, porém notei que o Pycharm apresenta uma sugestão como se fosse uma espécie de erro o que estou realizando:
class Restaurante:
restaurantes = []
def __init__(self, nome, categoria):
self.nome = nome
self.categoria = categoria
self.ativo = False
Restaurante.restaurantes.append(self) # Quando utilizar o construtor já irá guardar na lista o restaurante
def __str__(self):
"""
Este método, converte para string e retorna em tela, para que não seja apresentada
a referente em memória
:return:
"""
return f"{self.nome}, {self.categoria}"
def listar_restaurantes():
for restaurante in Restaurante.restaurantes:
print(f"{restaurante.nome} | {restaurante.categoria} | {restaurante.ativo}")
pizzaria = Restaurante("Pizza Express", "Italiano")
#print(pizzaria)
# Ao realizar o print dessa forma (sem existir o método __str__)
# irá trazer a referencia de memória do objeto instanciado
Restaurante.listar_restaurantes()
Estes dois pontos são onde apresentam a possível correção, ao manter o mouse parado acima:
E também ao manter o mouse acima do ():
Porque o Pycharm tenta corrigir isso? Ele sempre espera que todos métodos dentro da classe tenham o self?