Es ist ein Thema, das von frommen Pythonisten beschimpft werden kann, aber in der Situation, in der ich in einer eingebetteten Python-Umgebung verarbeiten möchte, ohne den Namespace zu verschmutzen, habe ich einen lokalen Bereich mit dem folgenden Code erstellt. Ich habe bestätigt, dass es mit Python 2.7.4 / 3.3.1 funktioniert, aber ich habe nicht viel getan, daher denke ich, dass es auch mit anderen Versionen funktionieren wird.
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)
Ich brich nur die Klassenerstellung ab, indem ich mit der Klassenanweisung einen lokalen Bereich erstelle und am Ende des lokalen Bereichs eine Ausnahme auslöse.
Ich möchte es nicht oft verwenden, auch wenn ich einen Fehler mache, aber wenn Sie wirklich etwas wie (function () {...} ());
in JavaScript tun möchten, gibt es auch eine solche Methode.