Blockieren Sie den Bereich in Python

Wenn du in anderen Sprachen kodierst, wirst du manchmal einen Blockumfang erstellen, wie folgt:

statement ... statement { statement ... statement } statement ... statement 

Ein Ziel (von vielen) besteht darin, die Code-Lesbarkeit zu verbessern: um zu zeigen, dass bestimmte Aussagen eine logische Einheit bilden oder dass bestimmte lokale Variablen nur in diesem Block verwendet werden.

Gibt es eine idiomatische Art, dasselbe in Python zu tun?

3 Solutions collect form web for “Blockieren Sie den Bereich in Python”

Nein, es gibt keine Sprachunterstützung für das Erstellen von Blockumfang. Das einzige Mittel, um Umfang zu schaffen, ist Funktionen, Klassen oder Module.

Der idiomatische Weg in Python ist es, deine Funktionen kurz zu halten. Wenn du denkst, dass du das brauchst, umgestoßen deinen Code! 🙂

Python schafft für jeden Modul-, Klassen-, Funktions- oder Generatorausdruck einen neuen Bereich (in Python 3.x auch für Listenverständnisse). Abgesehen davon gibt es keine verschachtelten Bereiche innerhalb von Funktionen.

Sie können etwas Ähnliches wie ein C ++ – Blockbereich in Python machen, indem Sie eine Funktion in Ihrer Funktion deklarieren und dann sofort anrufen. Beispielsweise:

 def my_func(): shared_variable = calculate_thing() def do_first_thing(): ... = shared_variable do_first_thing() def do_second_thing(): foo(shared_variable) ... do_second_thing() 

Wenn Sie nicht sicher sind, warum Sie das vielleicht tun möchten, dann könnte dieses Video Sie überzeugen.

Das Grundprinzip ist, alles so eng wie möglich zu gestalten, ohne irgendwelche "Müll" (Extra-Typen / Funktionen) in einen breiteren Bereich do_first_thing() als es absolut erforderlich ist – nichts anderes möchte die do_first_thing() -Methode verwenden, zum Beispiel so sollte es nicht sein Außerhalb der Aufruffunktion.

  • "Lokale Variable referenziert vor Zuordnung" - nur Funktionen?
  • Scoping in Python 'für' Schleifen
  • Wie kann man Variablen eines anderen Bereichs ändern?
  • Wie man globale Variablen unter verschiedenen Modulen in Python hat
  • Python - Wie man eine globale Variable aus einer Funktion
  • Funktion Ortsname Bindung aus einem äußeren Bereich
  • Warum ist der Ort zum Zeitpunkt der Kompilierung bestimmt?
  • Variabler Bereich (Python Newbie)
  • Warum verschachtelte Funktionen auf Variablen von äußeren Funktionen zugreifen können, aber sie nicht ändern dürfen [duplizieren]
  • Python Variable Scope (Vorbehalt durch Verweis oder Kopie?)
  • Globals und Einheimische in python exec ()
  • Python ist die beste Programmiersprache der Welt.