Scrivi alcune righe di codice Python X
, che non fa riferimento a nessuna variabile globale, tale che
def method():
X
print(a)
method()
stampe 1
ma
def method():
X
X
print(a)
method()
stampe 2
.
Quindi, odio essere un pignolo, ma sembra vars
e in locals
realtà sono variabili globali in Python:
def test_global_1():
global vars, locals
vars = lambda: 2
locals = lambda: 3
def test_global_2():
print(vars())
print(locals())
test_global_1()
test_global_2()
Inoltre, sembra che le persone vorrebbero vedere criteri vincenti oggettivi per puzzle come questo. La lunghezza del codice non si sente proprio qui, quindi forse potremmo creare un sistema di punti brownie per varie nuove funzionalità del codice? Non sono sicuro di cosa potrebbero essere questi ma ecco un inizio:
- +1 per davvero davvero senza globali (no
vars
olocals
) - +1 per essere il primo a pubblicare una tecnica particolare
- +1 per la soluzione più breve pubblicata
- +1 per una soluzione che coinvolge solo una singola istruzione Python
- +1 per "hack" interessanti come unirsi a confini non lessicali
- +1 per non usare eccezioni
E se riesci a pensare ad altro, puoi modificare questa domanda da aggiungere all'elenco.
Questo problema può essere risolto senza usare eccezioni e senza usare globi come vars
e locals
? Sospetto che possa, anche se non ho ancora capito esattamente come ...
X
, ma ci sono altre opzioni.