Écrivez quelques lignes de code Python,, X
qui ne référencent aucune variable globale, telles que
def method():
X
print(a)
method()
imprime 1
mais
def method():
X
X
print(a)
method()
impressions 2
.
Donc, je déteste être pointilleux, mais il semble que vars
et locals
sont en fait des variables globales en 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()
En outre, il semble que les gens aimeraient voir des critères de victoire objectifs pour des puzzles comme celui-ci. La longueur du code ne se sent pas vraiment ici, alors peut-être pourrions-nous créer un système de points brownie pour diverses nouvelles fonctionnalités du code? Je ne sais pas exactement ce que cela pourrait être, mais voici un début:
- +1 pour vraiment vraiment pas de globaux (non
vars
oulocals
) - +1 pour avoir été le premier à publier une technique particulière
- +1 pour la solution la plus courte publiée
- +1 pour une solution n'impliquant qu'une seule instruction Python
- +1 pour des "hacks" intéressants comme rejoindre des non-frontières lexicales
- +1 pour ne pas utiliser d'exceptions
Et si vous pouvez penser à plus, vous pouvez modifier cette question pour l'ajouter à la liste.
Ce problème peut-il être résolu sans utiliser d'exceptions et sans utiliser des globaux comme vars
et locals
? Je soupçonne que c'est possible, même si je n'ai pas encore compris exactement comment ...
X
, mais il existe d'autres options.