Napisz kilka wierszy kodu w języku Python X
, który nie odwołuje się do żadnych zmiennych globalnych, takich jak
def method():
X
print(a)
method()
odciski, 1
ale
def method():
X
X
print(a)
method()
odciski 2
.
Tak, nienawidzę być pedantem, ale wydaje się, vars
i locals
są rzeczywiście zmienne globalne w Pythonie:
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()
Wygląda też na to, że ludzie chcieliby zobaczyć obiektywne kryteria wygrywające dla takich zagadek. Długość kodu tak naprawdę nie wydaje się tutaj, więc być może moglibyśmy stworzyć system punktów brownie dla różnych nowatorskich funkcji kodu? Nie jestem pewien, co to może być, ale oto początek:
- +1 za naprawdę brak globali (nie
vars
lublocals
) - +1 za to, że jako pierwszy opublikował określoną technikę
- +1 za najkrótsze opublikowane rozwiązanie
- +1 za rozwiązanie obejmujące tylko jedną instrukcję Python
- +1 za ciekawe „hacki”, takie jak łączenie na leksykalnych granicach
- +1 za niestosowanie wyjątków
A jeśli możesz wymyślić więcej, możesz edytować to pytanie, aby dodać je do listy.
Czy ten problem można rozwiązać bez użycia wyjątków i bez użycia globałów takich jak vars
i locals
? Podejrzewam, że tak, choć jeszcze nie wiem, jak ...
X
, ale są też inne opcje.