Spezielle Bezeichner (Identifier) (C) 2017-2021 T.Birnthaler OSTC GmbH
=================================
Doku --> docs.python.org/dev/peps/pep-0008
docs.python.org/3/reference/lexical_analysis.html#identifiers-and-keywords
www.pep8.org
Folgende Namenskonventionen für Bezeichner (Identifier) gelten in Python:
+----------+-------------------------------------------------------------------+
| Name | Bedeutung |
+----------+-------------------------------------------------------------------+
| __*__ | INTERNER Name (reserviert für Python selbst) |
| __* | Privater Name in Klasse (mangled --> _CLASS__*) |
| _* | Protected Name in Klasse (nur für Vererbung) |
| | Interner Name in Modul (für modulinterne Zwecke) |
| | (von "from MODULE import *" nicht importiert) |
| | (Hilfsklasse, Hilfsfunktion, ...) |
+----------+-------------------------------------------------------------------+
| *_ | Schlüsselwort als Bezeichner (z.B. "if_") |
| _ | Ergebnis der letzten Auswertung im interaktiven Interpreter |
| | Temporäre Variable in Schleife (for _ in ...) |
| | "Wegwerfvariable" (syntaktisch notwendig, inhaltlich irrelevant) |
| | Internationalisierung (i18n, l10n, gettext) |
+----------+-------------------------------------------------------------------+
| self | Objekt in normaler Methode einer Klasse |
| other | 2. Objekt in normaler 2-wertiger Methode einer Klasse |
| cls | Klasse in Klassen-Methode einer Klasse |
| *args | "Sammler" für Positions-Parameter in Funktion (--> Tupel) |
| **kwargs | "Sammler" für Keyword-Parameter in Funktion (--> Dictionary) |
+----------+------------------------------------------------------+------------+
| NAME | Konstante (GROSSB., Unterstrich, Ziffern) | Subst/Adj |
| | (Ausnahmen: True, False, None, math.inf, math.nan) | |
| Name | Klassenname (CamelCase) | Substantiv |
| Name | Exceptionklasse (CamelCase) | Substantiv |
| name | Modulname (kleinb., KEIN Unterstrich, Ziffern) | Substantiv |
| name | Variablename (kleinb., Unterstrich, Ziffern) | Subst/Adj |
| name | Funktionsname (kleinb., Unterstrich, Ziffern) | Verb |
| name | Objektname (kleinb., Unterstrich, Ziffern) | Subst/Adj |
+----------+------------------------------------------------------+------------+
Qualifizierte Namen werden durch "." getrennt (der "." wird beim Zugriff auf
das Dateisystem in den jeweiligen Verz.-Trenner "\" oder "/" umgesetzt).
MODUL.VARIABLE # Zugriff auf Variable in Modul
MODUL.FUNKTION() # Aufruf von Funktion in Modul
PAKET.SUBMODUL.VARIABLE # Zugriff auf Variable in Paket-Untermodul
PAKET.SUBMODUL.FUNKTION() # Aufruf von Funktion in Paket-Untermodul
PFAD.ZU.MODUL.VARIABLE # Zugriff auf Variable in Modul in Unterverzeichnis
PFAD.ZU.MODUL.FUNKTION() # Aufruf von Funktion in Modul in Unterverzeichnis
Komponenten von Klassen und Objekten werden ebenfalls durch "." im Namen
angesprochen:
OBJEKT.ATTRIBUT # Zugriff auf Attribut von Objekt
OBJEKT.METHODE() # Aufruf von Methode für Objekt
KLASSE.ATTRIBUT # Zugriff auf Klassen-Attribut
KLASSE.METHODE() # Aufruf von Klassen-Methode oder statischer Methode
FUNKTION.ATTRIBUT # Zugriff auf Funktions-Attribut
Spezielle Attribute
-------------------
Spezielle Attribute, werden teilweise von der built-in Funktion "dict()" nicht
aufgelistet, wohl aber von der Funktion "dir()".
+------------------+-----------------------------------------------------------+
| Attribut | Beschreibung |
+------------------+-----------------------------------------------------------+
| __doc__ | Dokumentationsstring ("Docstring") |
| __name__ | Name Klasse/Funktion/Methode/Descriptor/Generator-Instanz |
| __qualname__ | Qualifizierter Name Klasse/.../Generator-Instanz |
| __module__ | Modul in dem Name definiert ist |
| __all__ | In __init__.py autom. zu lad. Subm. bei from ... import * |
+------------------+-----------------------------------------------------------+
| __call__ | Codeobjekt einer Funktion |
| __defaults__ | Tuple mit Defaultwerten für Position-Parameter von Funk. |
| __kwdefaults__ | Dictionary mit Defaultwerten für Keyword-Parameter von F. |
| __annotations__ | Dictionary mit "Annotations" für Param. + Rückgabewert |
| __closure__ | Bindungen freier Variablen an Werte |
+------------------+-----------------------------------------------------------+
| __mro__ | Tupel der Basisklassen für Methodenauflösung (linear) |
| mro() | Liefert Ergebnis für __mro__ bei Klassen-Instanziierung |
| __subclasses__() | Liste schwacher Referenzen zu direkten Unterklassen |
+------------------+-----------------------------------------------------------+
| __class__ | Klasse zu der eine Instanz gehört |
| __bases__ | Tupel der Basisklassen eines Klassenobjekts |
| __dict__ | Speicher für dynamische Objektattribute (Name + Wert) |
| __slots__ | Namen der statische Objektattribute |
| __weakref__ | "Schwache" Referenzen |
+------------------+-----------------------------------------------------------+
| __globals__ | Referenz zu Dictionary mit globalen Variablen |
+------------------+-----------------------------------------------------------+
| __self__ | Objekt auf dem eine Methode arbeitet |
| __func__ | Funktion die hinter einer Methode steckt (implementiert) |
+------------------+-----------------------------------------------------------+
Spezielle Methoden