In C ++ können Sie die Lesbarkeit Ihres Codes oft durch sorgfältige Verwendung des Schlüsselwortes "using" drastisch verbessern, zum Beispiel:
%Vor%wird
%Vor%Gibt es für Python etwas Ähnliches, oder muss ich alles vollständig qualifizieren?
Ich füge den Haftungsausschluss hinzu, von dem ich weiß, dass die Verwendung seine Fallstricke hat und dass der Umfang angemessen begrenzt sein sollte.
Wie Bill sagte, Python hat die Konstruktion
%Vor%Sie können jedoch auch explizit angeben, welche Namen Sie aus dem Modul (Namespace) importieren möchten:
%Vor%Dies macht den Code noch lesbarer / leichter verständlich, da jemand, der einen Bezeichner in der Quelle sieht, nicht alle importierten Module durchsuchen muss, um zu sehen, wo er herkommt. Hier ist eine verwandte Frage: Namensraumspezifikation in Abwesenheit von Ambuguität
BEARBEITEN : Als Antwort auf den Kommentar von Pax werde ich erwähnen, dass Sie auch Dinge wie
schreiben können %Vor%aber dann müssen Sie
schreiben %Vor%statt nur
%Vor% Das ist natürlich nicht unbedingt eine schlechte Sache. Ich verwende normalerweise eine Mischung aus den from X import y
und import X.y
Formen, was auch immer ich fühle, macht meinen Code am klarsten. Es ist sicherlich eine subjektive Sache in gewissem Maße.
oder
%Vor%oder
%Vor%Dabei ist X das Python-Modul, das Sie verwenden möchten.
Es wäre hilfreich für Sie, uns ein Python-Codebeispiel zu geben, das Ihrer Meinung nach bereinigt werden muss.
Zusätzlich zu Davids Antwort:
from X import (foo, bar, blah)
verwenden, um PEP8 zu verwenden. from foo import bar as baz
Ich empfehle, das Handbuch für das Schlüsselimport , das eingebaute __import__
, zu lesen und Erklärung für sys.modules als weitere Lektüre.
Beachten Sie, dass
%Vor% funktioniert auch, wenn bar
ein Modul im Paket foo
ist. Auf diese Weise können Sie die Namensraumverschmutzung begrenzen, ohne jede Funktion / Klasse in foo.bar
benennen zu müssen, die Sie möglicherweise verwenden möchten. Es hilft auch Lesern Ihres Codes, weil sie einen Aufruf von bar.baz()
sehen und eine bessere Idee haben, woher baz
stammt.
Tags und Links python namespaces using