C'est un sujet qui peut être grondé par les pythonistes dévots, mais dans la situation où je veux traiter dans un environnement Python intégré sans polluer l'espace de noms, j'ai créé une portée locale en utilisant le code suivant. J'ai confirmé que cela fonctionnait avec Python 2.7.4 / 3.3.1, mais je n'ai pas fait grand chose, donc je pense que cela fonctionnera également avec d'autres versions.
localscope.py
DummyClassForLocalScope = "global value"
try:
class DummyClassForLocalScope:
# you can write any code here
raise RuntimeError("Exit from local scope")
except RuntimeError as exception:
if exception.args != ("Exit from local scope",):
raise exception
print(DummyClassForLocalScope)
J'annule simplement la création de classe en créant une portée locale avec l'instruction de classe et en levant une exception à la fin de la portée locale.
Je ne veux pas beaucoup l'utiliser même si je fais une erreur, mais si vous voulez vraiment faire quelque chose comme (function () {...} ());
en JavaScript, il existe aussi une telle méthode.
Recommended Posts