Écrivez quelques lignes de code Python,, Xqui ne référencent aucune variable globale, telles que
def method():
X
print(a)
method()
imprime 1mais
def method():
X
X
print(a)
method()
impressions 2.
Donc, je déteste être pointilleux, mais il semble que varset localssont 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
varsoulocals) - +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 varset 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.