Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

usando global

ao invés de tirar toda essa parte:

jogo1 = Jogo('Tetris', 'Puzzle', 'Atari') jogo2 = Jogo('Minecraft', 'Arcarde', "Pc, Mobile, Xbox and PS5") jogo3 = Jogo('Robox', 'Arcarde', "Pc and Mobile") lista = [jogo1, jogo2, jogo3]

do def ola():, eu não poderia simplesmente colocar global lista dentro dessa parte:

jogo1 = Jogo('Tetris', 'Puzzle', 'Atari') jogo2 = Jogo('Minecraft', 'Arcarde', "Pc, Mobile, Xbox and PS5") jogo3 = Jogo('Robox', 'Arcarde', "Pc and Mobile")

global lista

lista = [jogo1, jogo2, jogo3]

para a lista ser identificada no def criar():??

3 respostas

Fiz alguns testes e deu como NameError: name 'lista' is not defined. Por que isso acontece? Sendo que eu coloquei a lista como global. Caso realmente não faça sentido o global estar dentro da função, teria algum outro jeito de eu usar o global nessa situação?

solução!

Olá, Eduardo! Como vai?

O uso de variáveis globais pode ser uma solução em alguns casos, mas é importante entender que, em aplicações web, a ideia de "global" pode não funcionar como esperado. Isso ocorre porque cada requisição é tratada como um evento separado e o estado não é mantido entre as requisições.

No seu caso, você está tentando fazer a lista de jogos ser reconhecida em diferentes funções. Uma maneira de fazer isso seria, de fato, declarar a lista como uma variável global, como você sugeriu. No entanto, isso pode levar a alguns problemas, como conflitos de nomes e dificuldades de debug, especialmente em aplicações maiores.

Em vez disso, uma prática comum em aplicações web é armazenar esses tipos de dados em um banco de dados ou em uma sessão, que pode ser acessada de diferentes partes da aplicação.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Entendi agora! Muito obrigado!!