
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!

Olá, João! Tudo joia?
Faz sentido, sim, transformar o método listar_restaurantes em um @staticmethod. Isso porque ele não utiliza a instância da classe (ou seja, não usa self), mas sim a variável de classe restaurantes.
Para transformar o método em um método estático, você pode usar o decorador @staticmethod. Veja como ficaria:
class Restaurante:
restaurantes = []
def __init__(self, nome, categoria):
self.nome = nome
self.categoria = categoria
self.ativo = False
Restaurante.restaurantes.append(self)
def __str__(self):
return f'{self.nome} | {self.categoria}'
@staticmethod
def listar_restaurantes():
for restaurante in Restaurante.restaurantes:
print(f'{restaurante.nome} | {restaurante.categoria} | {restaurante.ativo}')
restaurante_praca = Restaurante('Praça', 'Gourmet')
restaurante_pizza = Restaurante('Pizza Express', 'Italiana')
Restaurante.listar_restaurantes()
Com essa modificação, o método listar_restaurantes não precisa mais de um parâmetro self e pode ser chamado diretamente pela classe, como você já estava fazendo.
Espero ter ajudado e bons estudos!