Glossar¶
>>>The default Python prompt of the interactive shell. Often seen for code examples which can be executed interactively in the interpreter.
...Kann sich beziehen auf:
The default Python prompt of the interactive shell when entering the code for an indented code block, when within a pair of matching left and right delimiters (parentheses, square brackets, curly braces or triple quotes), or after specifying a decorator.
The
Ellipsisbuilt-in constant.
- 2to3
A tool that tries to convert Python 2.x code to Python 3.x code by handling most of the incompatibilities which can be detected by parsing the source and traversing the parse tree.
2to3 is available in the standard library as
lib2to3; a standalone entry point is provided asTools/scripts/2to3. See 2to3 — Automated Python 2 to 3 code translation.- Abstrakte Basisklasse
Abstrakte Basisklassen (abstract base class / ABC) ergänzen Duck-Typing, indem sie eine Möglichkeit bieten, Schnittstellen zu definieren, wenn andere Techniken wie
hasattr()umständlich oder in subtiler Weise falsch wären (zum Beispiel bei magischen Methoden). ABCs führen virtuelle Unterklassen ein – das sind Klassen, die nicht von einer Klasse erben, aber dennoch vonisinstance()undissubclass()erkannt werden; siehe die Dokumentation zum Modulabc. Python enthält viele integrierte ABCs für Datenstrukturen (im Modulcollections.abc), Zahlen (im Modulnumbers), Streams (im Modulio) sowie Import-Finder und Loader (im Modulimportlib.abc). Mit dem Modulabckannst du eigene ABCs erstellen.- Annotation
Eine Bezeichnung, die einer Variablen, einem Klassenattribut oder einem Funktionsparameter bzw. Rückgabewert zugeordnet ist und üblicherweise als Typhinweis verwendet wird.
Annotations of local variables cannot be accessed at runtime, but annotations of global variables, class attributes, and functions are stored in the
__annotations__special attribute of modules, classes, and functions, respectively.See variable annotation, function annotation, PEP 484 and PEP 526, which describe this functionality. Also see Annotations Best Practices for best practices on working with annotations.
- Argument
Ein Wert, der beim Aufruf einer Funktion (oder Methode) an diese übergeben wird. Es gibt zwei Arten von Argumenten:
Schlüsselwortargument: Ein Argument, dem in einem Funktionsaufruf ein Bezeichner vorangestellt ist (z. B.
name=) oder das in einem Dictionary als Wert übergeben wird, dem**vorangestellt ist. Beispielsweise sind sowohl3als auch5Schlüsselwortargumente in den folgenden Aufrufen voncomplex():complex(real=3, imag=5) complex(**{'real': 3, 'imag': 5})
Positionsargument <positional argument>: Ein Argument, das kein Schlüsselwortargument ist. Positionsargumente können am Anfang einer Argumentliste stehen und/oder als Elemente eines iterable übergeben werden, dem
*vorangestellt ist. Beispielsweise sind sowohl3als auch5Positionsargumente in den folgenden Aufrufen:complex(3, 5) complex(*(3, 5))
Argumente werden im Funktionskörper den benannten lokalen Variablen zugewiesen. Die Regeln für diese Zuweisung findest du im Abschnitt Calls . Syntaktisch kann jeder Ausdruck zur Darstellung eines Arguments verwendet werden. Der ausgewertete Wert wird der lokalen Variablen zugewiesen.
Siehe auch den Glossareintrag zu parameter, die FAQ-Frage zum Unterschied zwischen Argumenten und Parametern und PEP 362.
- asynchroner Kontextmanager
An object which controls the environment seen in an
async withstatement by defining__aenter__()and__aexit__()methods. Introduced by PEP 492.- asynchroner Generator
A function which returns an asynchronous generator iterator. It looks like a coroutine function defined with
async defexcept that it containsyieldexpressions for producing a series of values usable in anasync forloop.Usually refers to an asynchronous generator function, but may refer to an asynchronous generator iterator in some contexts. In cases where the intended meaning isn’t clear, using the full terms avoids ambiguity.
Eine asynchrone Generatorfunktion kann sowohl
await-Ausdrücke als auchasync for- undasync with-Anweisungen enthalten.- asynchrone Generator-Iterator
An object created by a asynchronous generator function.
This is an asynchronous iterator which when called using the
__anext__()method returns an awaitable object which will execute the body of the asynchronous generator function until the nextyieldexpression.Each
yieldtemporarily suspends processing, remembering the location execution state (including local variables and pending try-statements). When the asynchronous generator iterator effectively resumes with another awaitable returned by__anext__(), it picks up where it left off. See PEP 492 and PEP 525.- asynchrones iterierbares Objekt
An object, that can be used in an
async forstatement. Must return an asynchronous iterator from its__aiter__()method. Introduced by PEP 492.- asynchroner Iterator
An object that implements the
__aiter__()and__anext__()methods.__anext__must return an awaitable object.async forresolves the awaitables returned by an asynchronous iterator’s__anext__()method until it raises aStopAsyncIterationexception. Introduced by PEP 492.- Attribut
Ein Wert, der einem Objekt zugeordnet ist und auf den in der Regel mithilfe von Punktnotation unter Angabe des Namens verwiesen wird. Wenn beispielsweise ein Objekt o ein Attribut a hat, würde darauf als o.a verwiesen werden.
Es ist möglich, einem Objekt ein Attribut zuzuweisen, dessen Name kein Bezeichner im Sinne von Identifiers and keywords ist, beispielsweise mithilfe von
setattr(), sofern das Objekt dies zulässt. Auf ein solches Attribut kann nicht über einen Punktausdruck zugegriffen werden; stattdessen muss es mitgetattr()abgerufen werden.- abwartbar
An object that can be used in an
awaitexpression. Can be a coroutine or an object with an__await__()method. See also PEP 492.- BDFL
Wohltätiger Diktator auf Lebenszeit, auch bekannt als Guido van Rossum, der Schöpfer von Python.
- Binärdatei
A file object able to read and write bytes-like objects. Examples of binary files are files opened in binary mode (
'rb','wb'or'rb+'),sys.stdin.buffer,sys.stdout.buffer, and instances ofio.BytesIOandgzip.GzipFile.Siehe auch Textdatei für ein Dateiobjekt, das Objekte vom Typ
strlesen und schreiben kann.- entlehnte Referenz
In der C-API von Python ist eine ausgeliehene Referenz eine Referenz auf ein Objekt, wobei der Code, der das Objekt verwendet, nicht Eigentümer der Referenz ist. Sie wird zu einem dangling pointer, wenn das Objekt zerstört wird. Beispielsweise kann eine Garbage Collection die letzte starke Referenz auf das Objekt entfernen und es so zerstören.
Es wird empfohlen, die Funktion
Py_INCREF()auf die geliehene Referenz anzuwenden, um diese an Ort und Stelle in eine starke Referenz umzuwandeln – es sei denn, das Objekt kann nicht vor der letzten Verwendung der geliehenen Referenz zerstört werden. Mit der FunktionPy_NewRef()kann eine neue starke Referenz erstellt werden.- Byte-ähnliches Objekt
Ein Objekt, das die Schnittstelle Buffer-Protokoll unterstützt und einen C-zusammenhängenden Puffer exportieren kann. Dazu gehören alle Objekte vom Typ
bytes,bytearrayundarray.arraysowie viele gängige Objekte vom Typmemoryview. Bytes-ähnliche Objekte können für verschiedene Operationen verwendet werden, die mit Binärdaten arbeiten; dazu gehören Komprimierung, das Speichern in einer Binärdatei und das Senden über einen Socket.Bei einigen Operationen müssen die Binärdaten veränderbar sein. In der Dokumentation werden diese häufig als „les- und schreibbare byteähnliche Objekte“ bezeichnet. Beispiele für veränderbare Pufferobjekte sind
bytearrayund einmemoryvieweinesbytearray-Objekts. Andere Operationen erfordern, dass die Binärdaten in unveränderbaren Objekten (read-only bytes-like objects) gespeichert werden; Beispiele hierfür sindbytesund einmemoryvieweinesbytes-Objekts.- Bytecode
Python-Quellcode wird zu Bytecode kompiliert, der internen Darstellung eines Python-Programms im CPython-Interpreter. Der Bytecode wird zudem in
.pyc-Dateien zwischengespeichert, sodass die Ausführung derselben Datei beim zweiten Mal schneller erfolgt (eine Neukompilierung vom Quellcode zum Bytecode kann vermieden werden). Diese „Zwischensprache“ läuft auf einer virtuellen Maschine, die den jedem Bytecode entsprechenden Maschinencode ausführt. Beachte jedoch, dass Bytecodes nicht unbedingt zwischen verschiedenen virtuellen Python-Maschinen funktionieren und auch nicht über Python-Versionen hinweg stabil sind.Eine Liste der Bytecode-Befehle findest du in der Dokumentation zum dis-Modul.
- abrufbar
Ein Callable ist ein Objekt, das aufgerufen werden kann, gegebenenfalls mit einer Reihe von Argumenten (siehe argument), und zwar mit folgender Syntax:
callable(argument1, argument2, ...)
Eine Funktion und im weiteren Sinne auch eine Methode ist ein aufrufbares Objekt. Eine Instanz einer Klasse, die die Methode
__call__()implementiert, ist ebenfalls ein aufrufbares Objekt.- Callback
Eine Unterprogrammfunktion, die als Argument übergeben wird, um zu einem späteren Zeitpunkt ausgeführt zu werden.
- Klasse
Eine Vorlage zum Erstellen benutzerdefinierter Objekte. Klassendefinitionen enthalten in der Regel Methodendefinitionen, die auf Instanzen der Klasse angewendet werden.
- Klassenvariable
Eine Variable, die in einer Klasse definiert ist und nur auf Klassenebene (d.h. nicht in einer Instanz der Klasse) geändert werden soll.
- coercion
The implicit conversion of an instance of one type to another during an operation which involves two arguments of the same type. For example,
int(3.15)converts the floating point number to the integer3, but in3+4.5, each argument is of a different type (one int, one float), and both must be converted to the same type before they can be added or it will raise aTypeError. Without coercion, all arguments of even compatible types would have to be normalized to the same value by the programmer, e.g.,float(3)+4.5rather than just3+4.5.- komplexe Zahl
Eine Erweiterung des bekannten Systems der reellen Zahlen, in der alle Zahlen als Summe aus einem reellen und einem imaginären Teil ausgedrückt werden. Imaginäre Zahlen sind reelle Vielfache der imaginären Einheit (der Quadratwurzel von
-1), die in der Mathematik häufig alsiund im Ingenieurwesen alsjgeschrieben werden. Python bietet integrierte Unterstützung für komplexe Zahlen, die in der letztgenannten Notation geschrieben werden; der Imaginärteil wird mit dem Suffixjangegeben, z. B.3+1j. Um auf die komplexen Entsprechungen des Modulsmathzuzugreifen, verwendecmath. Die Verwendung komplexer Zahlen ist eine recht fortgeschrittene mathematische Funktion. Wenn du keinen Bedarf dafür siehst, kannst du diese Funktionen mit ziemlicher Sicherheit getrost ignorieren.- Kontextmanager
An object which controls the environment seen in a
withstatement by defining__enter__()and__exit__()methods. See PEP 343.- Kontextvariable
A variable which can have different values depending on its context. This is similar to Thread-Local Storage in which each execution thread may have a different value for a variable. However, with context variables, there may be several contexts in one execution thread and the main usage for context variables is to keep track of variables in concurrent asynchronous tasks. See
contextvars.- zusammenhängend
Ein Puffer gilt genau dann als zusammenhängend, wenn er entweder C-zusammenhängend oder Fortran-zusammenhängend ist. Null-dimensionale Puffer sind sowohl C- als auch Fortran-zusammenhängend. In eindimensionalen Arrays müssen die Elemente im Speicher nebeneinander angeordnet sein, und zwar in aufsteigender Reihenfolge der Indizes, beginnend bei Null. In mehrdimensionalen C-zusammenhängenden Arrays ändert sich der letzte Index am schnellsten, wenn die Elemente in der Reihenfolge ihrer Speicheradressen durchlaufen werden. In Fortran-zusammenhängenden Arrays hingegen ändert sich der erste Index am schnellsten.
- Coroutine
Coroutinen sind eine verallgemeinerte Form von Unterprogrammen. Unterprogramme werden an einer Stelle aufgerufen und an einer anderen Stelle beendet. Coroutinen können an vielen verschiedenen Stellen aufgerufen, beendet und fortgesetzt werden. Sie lassen sich mit der Anweisung
async defimplementieren. Siehe auch PEP 492.- Coroutinen-Funktion
Eine Funktion, die ein coroutine-Objekt zurückgibt. Eine Coroutine-Funktion kann mit der Anweisung
async defdefiniert werden und die Schlüsselwörterawait,async forsowieasync withenthalten. Diese wurden mit PEP 492 eingeführt.- CPython
Die kanonische Implementierung der Programmiersprache Python, wie sie auf python.org bereitgestellt wird. Der Begriff „CPython“ wird bei Bedarf verwendet, um diese Implementierung von anderen wie Jython oder IronPython zu unterscheiden.
- Dekorateur
A function returning another function, usually applied as a function transformation using the
@wrappersyntax. Common examples for decorators areclassmethod()andstaticmethod().Die Dekorator-Syntax ist lediglich Syntactic Sugar; die folgenden beiden Funktionsdefinitionen sind semantisch gleichbedeutend:
def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...
Das gleiche Konzept gibt es auch für Klassen, wird dort jedoch seltener verwendet. Weitere Informationen zu Dekoratoren findest du in der Dokumentation zu Funktionsdefinitionen und Klassendefinitionen.
- Deskriptor
Any object which defines the methods
__get__(),__set__(), or__delete__(). When a class attribute is a descriptor, its special binding behavior is triggered upon attribute lookup. Normally, using a.b to get, set or delete an attribute looks up the object named b in the class dictionary for a, but if b is a descriptor, the respective descriptor method gets called. Understanding descriptors is a key to a deep understanding of Python because they are the basis for many features including functions, methods, properties, class methods, static methods, and reference to super classes.Weitere Informationen zu den Methoden von Deskriptoren findest du unter Implementierung von Deskriptoren oder im Descriptor How To Guide.
- Dictionary
An associative array, where arbitrary keys are mapped to values. The keys can be any object with
__hash__()and__eq__()methods. Called a hash in Perl.- Dictionary Comprehension
Eine kompakte Möglichkeit, alle oder einen Teil der Elemente eines iterierbaren Objekts zu verarbeiten und ein Dictionary mit den Ergebnissen zurückzugeben.
results = {n: n ** 2 for n in range(10)}erzeugt ein Dictionary, in dem der Schlüsselnauf den Wertn ** 2abgebildet wird. Siehe Darstellungen für Listen, Mengen und Wörterbücher.- Dictionary-View
Die Objekte, die von den Methoden
dict.keys(),dict.values()unddict.items()zurückgegeben werden, werden als Dictionary-Ansichten bezeichnet. Sie bieten eine dynamische Ansicht der Einträge im Dictionary, was bedeutet, dass sich Änderungen am Dictionary unmittelbar in der Ansicht widerspiegeln. Um die Dictionary-Ansicht zwangsweise in eine vollständige Liste umzuwandeln, verwendelist(dictview). Siehe Dictionary view objects.- Docstring
A string literal which appears as the first expression in a class, function or module. While ignored when the suite is executed, it is recognized by the compiler and put into the
__doc__attribute of the enclosing class, function or module. Since it is available via introspection, it is the canonical place for documentation of the object.- Duck-Typing
Ein Programmierstil, bei dem nicht der Typ eines Objekts herangezogen wird, um festzustellen, ob es über die richtige Schnittstelle verfügt; stattdessen wird die Methode oder das Attribut einfach aufgerufen bzw. verwendet („Wenn es wie eine Ente aussieht und wie eine Ente quakt, muss es eine Ente sein.“) Durch die Betonung von Schnittstellen anstelle spezifischer Typen verbessert gut gestalteter Code seine Flexibilität, indem er polymorphe Substitution ermöglicht. Duck-Typing vermeidet Tests mit
type()oderisinstance(). (Beachte jedoch, dass Duck-Typing durch abstrakte Basisklassen ergänzt werden kann.) Stattdessen werden typischerweisehasattr()-Tests oder EAFP-Programmierung eingesetzt.- EAFP
Es ist einfacher, um Verzeihung zu bitten als um Erlaubnis. Dieser gängige Python-Programmierstil geht von der Existenz gültiger Schlüssel oder Attribute aus und fängt Ausnahmen ab, falls sich diese Annahme als falsch erweist. Dieser übersichtliche und schnelle Stil zeichnet sich durch das häufige Vorkommen von
try- undexcept-Anweisungen aus. Diese Technik steht im Gegensatz zum LBYL-Stil, der in vielen anderen Sprachen wie beispielsweise C üblich ist.- Ausdruck
A piece of syntax which can be evaluated to some value. In other words, an expression is an accumulation of expression elements like literals, names, attribute access, operators or function calls which all return a value. In contrast to many other languages, not all language constructs are expressions. There are also statements which cannot be used as expressions, such as
while. Assignments are also statements, not expressions.- Erweiterungsmodul
Ein in C oder C++ geschriebenes Modul, das die C-API von Python nutzt, um mit dem Kern und dem Anwendercode zu interagieren.
- f-String
String literals prefixed with
'f'or'F'are commonly called „f-strings“ which is short for formatted string literals. See also PEP 498.- Dateiobjekt
An object exposing a file-oriented API (with methods such as
read()orwrite()) to an underlying resource. Depending on the way it was created, a file object can mediate access to a real on-disk file or to another type of storage or communication device (for example standard input/output, in-memory buffers, sockets, pipes, etc.). File objects are also called file-like objects or streams.Es gibt insgesamt drei Kategorien von Dateiobjekten: rohe Binärdateien, gepufferte Binärdateien und Textdateien. Deine Schnittstellen sind im Modul
iodefiniert. Die übliche Vorgehensweise zum Erstellen eines Dateiobjekts ist die Verwendung der Funktionopen().- dateiähnliches Objekt
Ein Synonym für Dateiobjekt.
- Dateisystem-Kodierung und Fehlerbehandlung
Von Python verwendete Kodierung und Fehlerbehandlung zum Dekodieren von Bytes aus dem Betriebssystem und zum Kodieren von Unicode für das Betriebssystem.
Die Dateisystemkodierung muss gewährleisten, dass alle Bytes unter 128 erfolgreich dekodiert werden. Wenn die Dateisystemkodierung diese Garantie nicht bieten kann, können API-Funktionen die Ausnahme
UnicodeErrorauslösen.Mit den Funktionen
sys.getfilesystemencoding()undsys.getfilesystemencodeerrors()lassen sich die Kodierung des Dateisystems und der Fehlerbehandler abrufen.Die Dateisystem-Kodierung und der Fehlerbehandler werden beim Start von Python über die Funktion
PyConfig_Read()konfiguriert: siehefilesystem_encodingundfilesystem_errors, die zuPyConfiggehören.Siehe auch den Begriff Lokalisierungskodierung.
- Finder
Ein Objekt, das versucht, den loader für ein Modul zu finden, das gerade importiert wird.
Since Python 3.3, there are two types of finder: meta path finders for use with
sys.meta_path, and path entry finders for use withsys.path_hooks.- Ganzzahldivision
Mathematische Division, bei der auf die nächste ganze Zahl abgerundet wird. Der Operator für die Floor-Division lautet
//. Der Ausdruck11 // 4ergibt beispielsweise2– im Gegensatz zu2.75, das bei einer echten Float-Division zurückgegeben wird. Beachte, dass(-11) // 4gleich-3ist, da es sich dabei um-2.75handelt, das nach unten abgerundet wurde. Siehe PEP 238.- Funktion
Eine Anweisungsfolge, die einen Wert an den Aufrufer zurückgibt. Ihr können zudem null oder mehr Argumente übergeben werden, die bei der Ausführung des Hauptteils verwendet werden können. Siehe auch Parameter, Methode sowie den Abschnitt Funktionsdefinitionen .
- Funktionsannotation
Eine Annotation eines Funktionsparameters oder eines Rückgabewerts.
Funktionsannotationen werden in der Regel für Typangaben: verwendet. Beispielsweise wird erwartet, dass diese Funktion zwei
intArgumente entgegennimmt und zudem einenintRückgabewert hat:def sum_two_numbers(a: int, b: int) -> int: return a + b
Die Syntax für Funktionsannotationen wird im Abschnitt Funktionsdefinitionen erläutert.
Siehe Variablen-Annotation und PEP 484, wo diese Funktionalität beschrieben wird. Siehe außerdem Annotations Best Practices für bewährte Vorgehensweisen beim Umgang mit Annotationen.
- __Zukunft__
Eine Future-Anweisung,
from __future__ import <feature>, weist den Compiler an, das aktuelle Modul unter Verwendung einer Syntax oder Semantik zu kompilieren, die in einer zukünftigen Version von Python zum Standard werden wird. Das Modul__future__dokumentiert die möglichen Werte von feature. Durch Importieren dieses Moduls und Auswerten seiner Variablen kannst du sehen, wann eine neue Funktion erstmals in die Sprache aufgenommen wurde und wann sie zur Standardeinstellung wird (oder wurde):>>> import __future__ >>> __future__.division _Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
- Garbage Collection
Der Vorgang, bei dem Speicher freigegeben wird, wenn er nicht mehr benötigt wird. Python führt die Speicherbereinigung mithilfe der Referenzzählung und eines zyklischen Garbage Collectors durch, der Referenzzyklen erkennen und auflösen kann. Der Garbage Collector lässt sich über das Modul
gcsteuern.- Generator
A function which returns a generator iterator. It looks like a normal function except that it contains
yieldexpressions for producing a series of values usable in a for-loop or that can be retrieved one at a time with thenext()function.Usually refers to a generator function, but may refer to a generator iterator in some contexts. In cases where the intended meaning isn’t clear, using the full terms avoids ambiguity.
- Generator-Iterator
An object created by a generator function.
Each
yieldtemporarily suspends processing, remembering the location execution state (including local variables and pending try-statements). When the generator iterator resumes, it picks up where it left off (in contrast to functions which start fresh on every invocation).- Generatorausdruck
An expression that returns an iterator. It looks like a normal expression followed by a
forclause defining a loop variable, range, and an optionalifclause. The combined expression generates values for an enclosing function:>>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81 285
- generische Funktion
Eine Funktion, die aus mehreren Funktionen besteht, welche dieselbe Operation für verschiedene Typen implementieren. Welche Implementierung bei einem Aufruf verwendet werden soll, wird durch den Dispatch-Algorithmus bestimmt.
See also the single dispatch glossary entry, the
functools.singledispatch()decorator, and PEP 443.- generischer Typ
Ein Typ, der parametrisiert werden kann; typischerweise eine Containerklasse wie beispielsweise
listoderdict. Wird für Typ-Hinweise und Annotationen verwendet.Weitere Informationen findest du unter generische Alias-Typen, PEP 483, PEP 484, PEP 585 sowie im Modul
typing.- GIL
Siehe Global Interpreter Lock.
- Global Interpreter Lock
Der Mechanismus, den der CPython-Interpreter verwendet, um sicherzustellen, dass jeweils nur ein Thread Python-Bytecode ausführt. Dies vereinfacht die CPython-Implementierung, indem das Objektmodell (einschließlich kritischer integrierter Typen wie
dict) implizit gegen gleichzeitigen Zugriff abgesichert wird. Das Sperren des gesamten Interpreters erleichtert die Multithread-Fähigkeit des Interpreters, geht jedoch zu Lasten eines Großteils der Parallelität, die Multiprozessor-Rechner bieten.Manche Erweiterungsmodule – aus der Standardbibliothek oder von Dritten – sind allerdings so angelegt, dass sie das GIL freigeben, während sie rechenintensive Aufgaben wie Komprimierung oder Hashing ausführen. Außerdem wird das GIL bei I/O-Operationen immer freigegeben.
Past efforts to create a „free-threaded“ interpreter (one which locks shared data at a much finer granularity) have not been successful because performance suffered in the common single-processor case. It is believed that overcoming this performance issue would make the implementation much more complicated and therefore costlier to maintain.
- Hash-basierte PYC-Datei
Eine Bytecode-Cache-Datei, die zur Überprüfung ihrer Gültigkeit den Hashwert anstelle des Zeitstempels der letzten Änderung der entsprechenden Quelldatei heranzieht. Siehe Ungültigmachung von zwischengespeichertem Bytecode.
- hashbar
An object is hashable if it has a hash value which never changes during its lifetime (it needs a
__hash__()method), and can be compared to other objects (it needs an__eq__()method). Hashable objects which compare equal must have the same hash value.Dank der Hashbarkeit kann ein Objekt als Schlüssel in einem Dictionary und als Element in einer Menge verwendet werden, da diese Datenstrukturen intern den Hashwert nutzen.
Die meisten unveränderlichen, in Python integrierten Objekte sind hashbar; veränderbare Container (wie Listen oder Dictionarys) sind es nicht; unveränderliche Container (wie Tupel und Frozensets) sind nur dann hashbar, wenn ihre Elemente hashbar sind. Objekte, die Instanzen benutzerdefinierter Klassen sind, sind standardmäßig hashbar. Sie sind alle ungleich (außer mit sich selbst), und ihr Hashwert wird aus ihrer
id()abgeleitet.- IDLE
Eine integrierte Entwicklungs- und Lernumgebung für Python. IDLE ist eine einfache Editor- und Interpreter-Umgebung, die im Lieferumfang der Standarddistribution von Python enthalten ist.
- unveränderlich
An object with a fixed value. Immutable objects include numbers, strings and tuples. Such an object cannot be altered. A new object has to be created if a different value has to be stored. They play an important role in places where a constant hash value is needed, for example as a key in a dictionary.
- Importpfad
Eine Liste von Speicherorten (oder Pfadeinträge), die vom Pfad-basierten Finder nach zu importierenden Modulen durchsucht werden. Beim Import stammt diese Liste der Speicherorte in der Regel aus
sys.path, bei Unterpaketen kann sie jedoch auch aus dem Attribut__path__des übergeordneten Pakets stammen.- Importieren
Der Vorgang, durch den Python-Code in einem Modul für Python-Code in einem anderen Modul verfügbar gemacht wird.
- Importeur
Ein Objekt, das sowohl ein Modul findet als auch lädt; es ist sowohl ein Finder- als auch ein Loader-Objekt.
- interaktiv
Python has an interactive interpreter which means you can enter statements and expressions at the interpreter prompt, immediately execute them and see their results. Just launch
pythonwith no arguments (possibly by selecting it from your computer’s main menu). It is a very powerful way to test out new ideas or inspect modules and packages (rememberhelp(x)).- interpretiert
Python ist eine interpretierte Sprache im Gegensatz zu einer kompilierten Sprache, auch wenn diese Unterscheidung aufgrund des Bytecode-Compilers nicht immer eindeutig ist. Das bedeutet, dass Quelldateien direkt ausgeführt werden können, ohne dass zuvor explizit eine ausführbare Datei erstellt und anschließend ausgeführt werden muss. Interpretierte Sprachen haben in der Regel einen kürzeren Entwicklungs- und Debugging-Zyklus als kompilierte Sprachen, allerdings laufen ihre Programme im Allgemeinen auch langsamer. Siehe auch interaktiv.
- Beenden des Interpreters
Wenn der Python-Interpreter zum Beenden aufgefordert wird, wechselt er in eine spezielle Phase, in der er nach und nach alle zugewiesenen Ressourcen, wie beispielsweise Module und verschiedene wichtige interne Strukturen, freigibt. Außerdem ruft er mehrmals den Garbage Collector auf. Dies kann die Ausführung von Code in benutzerdefinierten Destruktoren oder weakref-Callbacks auslösen. Bei der Ausführung von Code während der Beendigungsphase können verschiedene Ausnahmen auftreten, da die Ressourcen, auf die er angewiesen ist, möglicherweise nicht mehr funktionieren (häufige Beispiele sind Bibliotheksmodule oder die Warnmechanismen).
Der Hauptgrund für das Beenden des Interpreters ist, dass das Modul
__main__oder das ausgeführte Skript die Ausführung abgeschlossen hat.- iterierbar
An object capable of returning its members one at a time. Examples of iterables include all sequence types (such as
list,str, andtuple) and some non-sequence types likedict, file objects, and objects of any classes you define with an__iter__()method or with a__getitem__()method that implements Sequence semantics.Iterables can be used in a
forloop and in many other places where a sequence is needed (zip(),map(), …). When an iterable object is passed as an argument to the built-in functioniter(), it returns an iterator for the object. This iterator is good for one pass over the set of values. When using iterables, it is usually not necessary to calliter()or deal with iterator objects yourself. Theforstatement does that automatically for you, creating a temporary unnamed variable to hold the iterator for the duration of the loop. See also iterator, sequence, and generator.- Iterator
An object representing a stream of data. Repeated calls to the iterator’s
__next__()method (or passing it to the built-in functionnext()) return successive items in the stream. When no more data are available aStopIterationexception is raised instead. At this point, the iterator object is exhausted and any further calls to its__next__()method just raiseStopIterationagain. Iterators are required to have an__iter__()method that returns the iterator object itself so every iterator is also iterable and may be used in most places where other iterables are accepted. One notable exception is code which attempts multiple iteration passes. A container object (such as alist) produces a fresh new iterator each time you pass it to theiter()function or use it in aforloop. Attempting this with an iterator will just return the same exhausted iterator object used in the previous iteration pass, making it appear like an empty container.Weitere Informationen finden Sie unter Iterator Types.
CPython-Implementierungsdetail: CPython does not consistently apply the requirement that an iterator define
__iter__().- Schlüsselfunktion
Eine Schlüsselfunktion oder Sortierfunktion ist ein aufrufbares Objekt, das einen Wert zurückgibt, der zum Sortieren oder Ordnen verwendet wird. Beispielsweise wird
locale.strxfrm()verwendet, um einen Sortierschlüssel zu erzeugen, der die lokalspezifischen Sortierkonventionen berücksichtigt.Eine Reihe von Tools in Python unterstützt Schlüssel-Funktionen, mit denen sich die Anordnung oder Gruppierung von Elementen steuern lässt. Dazu gehören
min(),max(),sorted(),list.sort(),heapq.merge(),heapq.nsmallest(),heapq.nlargest()unditertools.groupby().There are several ways to create a key function. For example. the
str.lower()method can serve as a key function for case insensitive sorts. Alternatively, a key function can be built from alambdaexpression such aslambda r: (r[0], r[2]). Also, theoperatormodule provides three key function constructors:attrgetter(),itemgetter(), andmethodcaller(). See the Sorting HOW TO for examples of how to create and use key functions.- Schlüsselwortargument
Siehe Argument.
- Lambda
Eine anonyme Inline-Funktion, die aus einem einzigen Ausdruck besteht, der beim Aufruf der Funktion ausgewertet wird. Die Syntax zum Erstellen einer Lambda-Funktion lautet
lambda [parameters]: expression- LBYL
Look before you leap (schau hin, bevor du springst). Dieser Programmierstil prüft Vorbedingungen ausdrücklich, bevor Aufrufe oder Zugriffe erfolgen. Er bildet den Gegensatz zum Ansatz EAFP und ist durch viele
if-Anweisungen gekennzeichnet.In a multi-threaded environment, the LBYL approach can risk introducing a race condition between „the looking“ and „the leaping“. For example, the code,
if key in mapping: return mapping[key]can fail if another thread removes key from mapping after the test, but before the lookup. This issue can be solved with locks or by using the EAFP approach.- Ländereinstellung, Kodierung
On Unix, it is the encoding of the LC_CTYPE locale. It can be set with
locale.setlocale(locale.LC_CTYPE, new_locale).On Windows, it is the ANSI code page (ex:
cp1252).locale.getpreferredencoding(False)can be used to get the locale encoding.Python uses the filesystem encoding and error handler to convert between Unicode filenames and bytes filenames.
- Liste
A built-in Python sequence. Despite its name it is more akin to an array in other languages than to a linked list since access to elements is O(1).
- List Comprehension
Eine kompakte Möglichkeit, alle oder einen Teil der Elemente einer Sequenz zu verarbeiten und eine Liste mit den Ergebnissen zurückzugeben.
result = ['{:#04x}'.format(x) for x in range(256) if x % 2 == 0]generiert eine Liste von Zeichenketten, die gerade Hexadezimalzahlen (0x..) im Bereich von 0 bis 255 enthalten. Die Klauselifist optional. Wird sie weggelassen, werden alle Elemente inrange(256)verarbeitet.- Lader
An object that loads a module. It must define a method named
load_module(). A loader is typically returned by a finder. See PEP 302 for details andimportlib.abc.Loaderfor an abstract base class.- magische Methode
Ein umgangssprachliches Synonym für Spezialmethode.
- Mapping
A container object that supports arbitrary key lookups and implements the methods specified in the
MappingorMutableMappingabstract base classes. Examples includedict,collections.defaultdict,collections.OrderedDictandcollections.Counter.- Meta-Pfadfinder
Ein Finder, der bei einer Suche auf
sys.meta_pathzurückgegeben wird. Meta-Pfadfinder stehen in Zusammenhang mit Pfadeintrags-Findern, unterscheiden sich jedoch von diesen.Unter
importlib.abc.MetaPathFinderfindest du die Methoden, die Meta-Path-Finder implementieren.- Metaklasse
Die Klasse einer Klasse. Klassendefinitionen legen einen Klassennamen, ein Klassen-Dictionary und eine Liste von Basisklassen fest. Die Metaklasse ist dafür zuständig, diese drei Argumente zu übernehmen und die Klasse zu erstellen. Die meisten objektorientierten Programmiersprachen bieten eine Standardimplementierung. Das Besondere an Python ist, dass es möglich ist, benutzerdefinierte Metaklassen zu erstellen. Die meisten Nutzer benötigen dieses Werkzeug nie, doch wenn der Bedarf entsteht, können Metaklassen leistungsstarke und elegante Lösungen bieten. Sie wurden bereits zur Protokollierung des Zugriffs auf Attribute, zur Gewährleistung der Thread-Sicherheit, zur Verfolgung der Objekterstellung, zur Implementierung von Singletons und für viele andere Aufgaben eingesetzt.
Weitere Informationen finden Sie unter Metaklassen.
- Methode
Eine Funktion, die innerhalb des Klassenkörpers definiert ist. Wird sie als Attribut einer Instanz dieser Klasse aufgerufen, erhält die Methode das Instanzobjekt als erstes Argument (das üblicherweise als
selfbezeichnet wird). Siehe function und nested scope.- Reihenfolge der Methodenauflösung
Method Resolution Order is the order in which base classes are searched for a member during lookup. See The Python 2.3 Method Resolution Order for details of the algorithm used by the Python interpreter since the 2.3 release.
- Modul
Ein Objekt, das als Organisationseinheit für Python-Code dient. Module verfügen über einen Namensraum, der beliebige Python-Objekte enthält. Module werden durch den Vorgang des Importierens in Python geladen.
Siehe auch Paket.
- Modulspezifikation
Ein Namespace, der die Import-bezogenen Informationen enthält, die zum Laden eines Moduls verwendet werden. Eine Instanz von
importlib.machinery.ModuleSpec.- MRO
- veränderlich
Mutable objects can change their value but keep their
id(). See also immutable.- benanntes Tupel
Der Begriff „benanntes Tupel“ bezieht sich auf jeden Typ oder jede Klasse, die von „Tupel“ erbt und deren indizierbare Elemente auch über benannte Attribute zugänglich sind. Der Typ oder die Klasse kann darüber hinaus noch weitere Merkmale aufweisen.
Mehrere integrierte Datentypen werden als Tupel bezeichnet, darunter die von
time.localtime()undos.stat()zurückgegebenen Werte. Ein weiteres Beispiel istsys.float_info:>>> sys.float_info[1] # indexed access 1024 >>> sys.float_info.max_exp # named field access 1024 >>> isinstance(sys.float_info, tuple) # kind of tuple True
Some named tuples are built-in types (such as the above examples). Alternatively, a named tuple can be created from a regular class definition that inherits from
tupleand that defines named fields. Such a class can be written by hand or it can be created with the factory functioncollections.namedtuple(). The latter technique also adds some extra methods that may not be found in hand-written or built-in named tuples.- Namensraum
Der Ort, an dem eine Variable gespeichert wird. Namensräume werden als Dictionarys implementiert. Es gibt lokale, globale und integrierte Namensräume sowie verschachtelte Namensräume in Objekten (in Methoden). Namensräume unterstützen die Modularität, indem sie Namenskonflikte verhindern. Beispielsweise unterscheiden sich die Funktionen
builtins.openundos.open()durch ihre Namensräume. Namensräume tragen zudem zur Lesbarkeit und Wartbarkeit bei, indem sie deutlich machen, welches Modul eine Funktion implementiert. Wenn du beispielsweiserandom.seed()oderitertools.islice()schreibst, wird deutlich, dass diese Funktionen jeweils von den Modulenrandomunditertoolsimplementiert werden.- Namensraum-Paket
A PEP 420 package which serves only as a container for subpackages. Namespace packages may have no physical representation, and specifically are not like a regular package because they have no
__init__.pyfile.Siehe auch Modul.
- verschachtelter Geltungsbereich
Die Möglichkeit, in einer umschließenden Definition auf eine Variable zu verweisen. So kann beispielsweise eine innerhalb einer anderen Funktion definierte Funktion auf Variablen in der äußeren Funktion verweisen. Beachte, dass verschachtelte Geltungsbereiche standardmäßig nur für Verweise und nicht für Zuweisungen gelten. Lokale Variablen lesen und schreiben im innersten Geltungsbereich. Ebenso lesen und schreiben globale Variablen im globalen Namensraum. Die Anweisung
nonlocalermöglicht das Schreiben in äußere Geltungsbereiche.- New-Style-Klasse
Old name for the flavor of classes now used for all class objects. In earlier Python versions, only new-style classes could use Python’s newer, versatile features like
__slots__, descriptors, properties,__getattribute__(), class methods, and static methods.- Objekt
Jede Dateninstanz mit einem Zustand (Attribute oder Wert) und definiertem Verhalten (Methoden). Außerdem die oberste Basisklasse jeder Klasse neuen Stils.
- Paket
Ein Python-Modul, das Untermodule oder – rekursiv – Unterpakete enthalten kann. Technisch gesehen ist ein Paket ein Python-Modul mit einem Attribut vom Typ
__path__.Siehe auch reguläres Paket und Namensraum-Paket.
- Parameter
Eine benannte Entität in einer Funktions- (oder Methoden-)Definition, die ein Argument (oder in manchen Fällen mehrere Argumente) angibt, das bzw. die die Funktion entgegennehmen kann. Es gibt fünf Arten von Parametern:
positional-or-keyword: bezeichnet ein Argument, das entweder über die Position oder als Schlüsselwortargument übergeben werden kann. Das ist die Standardart von Parametern, zum Beispiel foo und bar im Folgenden:
def func(foo, bar=None): ...
positional-only: Gibt ein Argument an, das nur über die Position übergeben werden kann. Parameter, die ausschließlich über die Position übergeben werden können, lassen sich definieren, indem man in der Parameterliste der Funktionsdefinition hinter ihnen das Zeichen
/einfügt, zum Beispiel posonly1 und posonly2 im folgenden Beispiel:def func(posonly1, posonly2, /, positional_or_keyword): ...
keyword-only: bezeichnet ein Argument, das nur über ein Schlüsselwort übergeben werden kann. Keyword-only-Parameter lassen sich festlegen, indem in der Parameterliste der Funktionsdefinition vor ihnen ein einzelner var-positional-Parameter oder ein bloßes
*steht, zum Beispiel kw_only1 und kw_only2 im Folgenden:def func(arg, *, kw_only1, kw_only2): ...
var-positional: Gibt an, dass eine beliebige Folge von Positionsargumenten angegeben werden kann (zusätzlich zu den Positionsargumenten, die bereits von anderen Parametern akzeptiert werden). Ein solcher Parameter kann definiert werden, indem dem Parameternamen
*vorangestellt wird, zum Beispiel args im folgenden Beispiel:def func(*args, **kwargs): ...
var-keyword: Gibt an, dass beliebig viele Schlüsselwortargumente angegeben werden können (zusätzlich zu den Schlüsselwortargumenten, die bereits von anderen Parametern akzeptiert werden). Ein solcher Parameter kann definiert werden, indem dem Parameternamen
**vorangestellt wird, beispielsweise kwargs im obigen Beispiel.
Parameter können sowohl optionale als auch erforderliche Argumente sowie Standardwerte für einige optionale Argumente festlegen.
Siehe auch den Glossareintrag argument, die FAQ-Frage zu dem Unterschied zwischen Argumenten und Parametern, die Klasse
inspect.Parameter, den Abschnitt Funktionsdefinitionen sowie PEP 362.- Pfadeintrag
Ein einzelner Speicherort im Importpfad, den der pfadbasierte Finder abfragt, um Module zum Importieren zu finden.
- Pfadeintrags-Finder
Ein finder, der von einer auf
sys.path_hooksaufrufbaren Funktion (d. h. einem path entry hook) zurückgegeben wird, die weiß, wie man Module anhand eines path entry findet.Unter
importlib.abc.PathEntryFinderfindest du die Methoden, die von Path-Entry-Findern implementiert werden.- Pfadeintrag-Hook
A callable on the
sys.path_hooklist which returns a path entry finder if it knows how to find modules on a specific path entry.- pfadbasierter Finder
Einer der standardmäßigen Meta-Pfadfinder, der einen Importpfad nach Modulen durchsucht.
- pfadähnliches Objekt
Ein Objekt, das einen Dateisystempfad darstellt. Ein pfadähnliches Objekt ist entweder ein
str- oder einbytes-Objekt, das einen Pfad darstellt, oder ein Objekt, das dasos.PathLike-Protokoll implementiert. Ein Objekt, das dasos.PathLike-Protokoll unterstützt, kann durch Aufruf der Funktionos.fspath()in einenstr- oderbytes-Dateisystempfad umgewandelt werden; mitos.fsdecode()bzw.os.fsencode()lässt sich stattdessen einstr- bzw.bytes-Ergebnis gewährleisten. Eingeführt durch PEP 519 .- PEP
Python Enhancement Proposal. Ein PEP ist ein Entwurfsdokument, das der Python-Community Informationen liefert oder eine neue Funktion für Python, dessen Prozesse oder dessen Umgebung beschreibt. PEPs sollten eine prägnante technische Spezifikation sowie eine Begründung für die vorgeschlagenen Funktionen enthalten.
PEPs sollen als primäre Mechanismen dienen, um wichtige neue Funktionen vorzuschlagen, Rückmeldungen der Community zu einem Thema einzuholen und die Designentscheidungen zu dokumentieren, die in Python eingeflossen sind. Der PEP-Autor ist dafür verantwortlich, einen Konsens innerhalb der Community herzustellen und abweichende Meinungen zu dokumentieren.
Siehe PEP 1.
- Anteil
Eine Sammlung von Dateien in einem einzigen Verzeichnis (die möglicherweise in einer ZIP-Datei gespeichert sind), die zu einem Namespace-Paket beitragen, wie unter PEP 420 definiert.
- Positionsargument
Siehe Argument.
- vorläufige API
Eine vorläufige API ist eine Schnittstelle, die bewusst von den Rückwärtskompatibilitätsgarantien der Standardbibliothek ausgenommen wurde. Zwar sind größere Änderungen an solchen Schnittstellen nicht zu erwarten, solange sie als vorläufig gekennzeichnet sind, doch können rückwärtsinkompatible Änderungen (bis hin zur Entfernung der Schnittstelle) vorgenommen werden, wenn dies von den Kernentwicklern als notwendig erachtet wird. Solche Änderungen werden nicht ohne triftigen Grund vorgenommen – sie erfolgen nur, wenn schwerwiegende grundlegende Mängel aufgedeckt werden, die vor der Aufnahme der API übersehen wurden.
Auch bei vorläufigen APIs gelten nicht rückwärtskompatible Änderungen als „letztes Mittel“ – es wird weiterhin jeder Versuch unternommen, für erkannte Probleme eine rückwärtskompatible Lösung zu finden.
Dieser Prozess ermöglicht es, dass sich die Standardbibliothek im Laufe der Zeit weiterentwickeln kann, ohne dass problematische Konstruktionsfehler über längere Zeiträume hinweg festgeschrieben werden. Weitere Einzelheiten findest du unter PEP 411.
- vorläufiges Paket
Siehe vorläufige API.
- Python 3000
Spitzname für die Python-3.x-Versionsreihe (der vor langer Zeit geprägt wurde, als die Veröffentlichung von Version 3 noch in ferner Zukunft lag). Er wird auch mit „Py3k“ abgekürzt.
- pythonisch
Eine Idee oder ein Codeabschnitt, der sich eng an die gängigsten Konventionen der Programmiersprache Python hält, anstatt Code unter Verwendung von Konzepten zu implementieren, die in anderen Sprachen üblich sind. Ein gängiges Beispiel in Python ist beispielsweise die Durchlaufschleife über alle Elemente eines iterierbaren Objekts mithilfe einer
forAnweisung. Viele andere Sprachen verfügen nicht über eine solche Konstruktion, sodass Personen, die mit Python nicht vertraut sind, manchmal stattdessen einen numerischen Zähler verwenden:for i in range(len(food)): print(food[i])
Im Gegensatz zu der übersichtlicheren, pythonischen Methode:
for piece in food: print(piece)
- qualifizierter Name
Ein gepunkteter Name, der den „Pfad“ vom globalen GeltungsbereichGeltungsbereich eines Moduls zu einer in diesem Modul definierten Klasse, Funktion oder Methode angibt, wie in PEP 3155 definiert. Bei Funktionen und Klassen der obersten Ebene entspricht der qualifizierte Name dem Namen des Objekts:
>>> class C: ... class D: ... def meth(self): ... pass ... >>> C.__qualname__ 'C' >>> C.D.__qualname__ 'C.D' >>> C.D.meth.__qualname__ 'C.D.meth'
Im Zusammenhang mit Modulen bezeichnet der vollständige Name den gesamten, durch Punkte getrennten Pfad zum Modul, einschließlich aller übergeordneten Pakete, z. B.
email.mime.text:>>> import email.mime.text >>> email.mime.text.__name__ 'email.mime.text'
- Referenzanzahl
The number of references to an object. When the reference count of an object drops to zero, it is deallocated. Reference counting is generally not visible to Python code, but it is a key element of the CPython implementation. The
sysmodule defines agetrefcount()function that programmers can call to return the reference count for a particular object.- Standardpaket
Ein herkömmliches Paket, beispielsweise ein Verzeichnis, das eine Datei vom Typ
__init__.pyenthält.Siehe auch: Namensraum-Paket.
- __slots__
Eine Deklaration innerhalb einer Klasse, die Speicherplatz spart, indem Speicherplatz für Instanzattribute vorab reserviert und Instanz-Dictionaries vermieden werden. Obwohl diese Technik weit verbreitet ist, ist ihre korrekte Anwendung etwas knifflig und sollte am besten nur in seltenen Fällen eingesetzt werden, in denen in einer speicherintensiven Anwendung eine große Anzahl von Instanzen vorliegt.
- Sequenz
An iterable which supports efficient element access using integer indices via the
__getitem__()special method and defines a__len__()method that returns the length of the sequence. Some built-in sequence types arelist,str,tuple, andbytes. Note thatdictalso supports__getitem__()and__len__(), but is considered a mapping rather than a sequence because the lookups use arbitrary immutable keys rather than integers.The
collections.abc.Sequenceabstract base class defines a much richer interface that goes beyond just__getitem__()and__len__(), addingcount(),index(),__contains__(), and__reversed__(). Types that implement this expanded interface can be registered explicitly usingregister().- Mengenkomprimierung
Eine kompakte Möglichkeit, alle oder einen Teil der Elemente einer iterierbares Objekt zu verarbeiten und eine Menge mit den Ergebnissen zurückzugeben.
results = {c for c in 'abracadabra' if c not in 'abc'}erzeugt die Menge der Zeichenfolgen{'r', 'd'}. Siehe Darstellungen für Listen, Mengen und Wörterbücher.- Single Dispatch
Eine Form der generischen Funktionsauswahl, bei der die Implementierung anhand des Typs eines einzelnen Arguments ausgewählt wird.
- Slice
An object usually containing a portion of a sequence. A slice is created using the subscript notation,
[]with colons between numbers when several are given, such as invariable_name[1:3:5]. The bracket (subscript) notation usessliceobjects internally.- spezielle Methode
Eine Methode, die von Python implizit aufgerufen wird, um eine bestimmte Operation auf einem Typ auszuführen, beispielsweise eine Addition. Die Namen solcher Methoden beginnen und enden mit zwei Unterstrichen. Spezielle Methoden sind unter Spezielle Methodennamen dokumentiert.
- Erklärung
Eine Anweisung ist Teil einer Suite (eines „Code-Blocks“). Eine Anweisung ist entweder ein Ausdruck oder eine von mehreren Konstrukten mit einem Schlüsselwort, wie beispielsweise
if,whileoderfor.- starke Referenz
In der C-API von Python ist eine starke Referenz eine Referenz auf ein Objekt, das dem Code gehört, der die Referenz enthält. Die starke Referenz wird durch den Aufruf von
Py_INCREF()beim Erstellen der Referenz hergestellt und durch den Aufruf vonPy_DECREF()beim Löschen der Referenz freigegeben.Mit der Funktion
Py_NewRef()lässt sich eine starke Referenz auf ein Objekt erstellen. In der Regel muss die FunktionPy_DECREF()für die starke Referenz aufgerufen werden, bevor der Geltungsbereich der starken Referenz verlassen wird, um ein Referenzleck zu vermeiden.Siehe auch: entlehnte Referenz.
- Textkodierung
Eine Zeichenkette in Python ist eine Folge von Unicode-Codepunkten (im Bereich
U+0000–U+10FFFF). Um eine Zeichenkette zu speichern oder zu übertragen, muss sie als Bytefolge serialisiert werden.Die Umwandlung einer Zeichenkette in eine Bytefolge wird als „Kodierung“ bezeichnet, und die Rekonstruktion der Zeichenkette aus der Bytefolge wird als „Dekodierung“ bezeichnet.
Es gibt eine Vielzahl verschiedener Text-Serialisierungsverfahren Codecs, die zusammenfassend als „Textkodierungen“ bezeichnet werden.
- Textdatei
Ein Dateiobjekt, das
str-Objekte lesen und schreiben kann. Häufig greift eine Textdatei tatsächlich auf einen byteorientierten Datenstrom zu und übernimmt die Textkodierung automatisch. Beispiele für Textdateien sind Dateien, die im Textmodus geöffnet wurden ('r'oder'w'),sys.stdin,sys.stdoutsowie Instanzen vonio.StringIO.Siehe auch Binärdatei für ein Dateiobjekt, das byteähnliche Objekte lesen und schreiben kann.
- Zeichenkette in dreifachen Anführungszeichen
Eine Zeichenkette, die durch drei aufeinanderfolgende einfache Anführungszeichen (“) oder Apostrophe (‘) begrenzt wird. Obwohl sie keine Funktionen bieten, die bei Zeichenketten in einfachen Anführungszeichen nicht verfügbar sind, sind sie aus verschiedenen Gründen nützlich. Sie ermöglichen es, nicht maskierte einfache und doppelte Anführungszeichen in eine Zeichenkette einzufügen, und sie können sich über mehrere Zeilen erstrecken, ohne dass das Fortsetzungszeichen verwendet werden muss, was sie besonders nützlich beim Schreiben von Docstrings macht.
- Typ
The type of a Python object determines what kind of object it is; every object has a type. An object’s type is accessible as its
__class__attribute or can be retrieved withtype(obj).- Typalias
Ein Synonym für einen Typ, das durch die Zuweisung des Typs zu einem Bezeichner erstellt wird.
Typ-Aliase sind nützlich, um Typ-Hinweise zu vereinfachen. Zum Beispiel:
def remove_gray_shades( colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]: pass
könnte so lesbarer gestaltet werden:
Color = tuple[int, int, int] def remove_gray_shades(colors: list[Color]) -> list[Color]: pass
Siehe
typingund PEP 484, wo diese Funktion beschrieben wird.- Typhinweis
Eine Annotation, die den erwarteten Typ für eine Variable, ein Klassenattribut oder einen Funktionsparameter bzw. Rückgabewert angibt.
Type hints are optional and are not enforced by Python but they are useful to static type analysis tools, and aid IDEs with code completion and refactoring.
Typhinweise für globale Variablen, Klassenattribute und Funktionen, nicht jedoch für lokale Variablen, können über
typing.get_type_hints()abgerufen werden.Siehe
typingund PEP 484, wo diese Funktion beschrieben wird.- universelle Zeilenumbrüche
Eine Methode zur Interpretation von Textströmen, bei der alle folgenden Zeichenfolgen als Zeilenende erkannt werden: die Unix-Zeilenende-Konvention
'\n', die Windows-Konvention'\r\n'und die alte Macintosh-Konvention'\r'. Siehe PEP 278 und PEP 3116 sowiebytes.splitlines()für eine weitere Anwendungsmöglichkeit.- Variablenbeschriftung
Eine Annotation einer Variablen oder eines Klassenattributs.
Bei der Annotation einer Variablen oder eines Klassenattributs ist die Zuweisung optional:
class C: field: 'annotation'
Variablenannotationen werden in der Regel für Typangaben verwendet – beispielsweise wird erwartet, dass diese Variable Werte vom Typ
intannimmt:count: int = 0
Die Syntax für die Annotation von Variablen wird im Abschnitt Kommentierte Zuweisungsanweisungen erläutert.
Siehe Funktionsannotation, PEP 484 und PEP 526, wo diese Funktionalität beschrieben wird. Siehe auch Annotations Best Practices für bewährte Vorgehensweisen beim Umgang mit Annotationen.
- virtuelle Umgebung
Eine kooperativ isolierte Laufzeitumgebung, die es Python-Anwendern und-Anwendungen ermöglicht, Python-Distributionspakete zu installieren und zu aktualisieren, ohne das Verhalten anderer Python-Anwendungen zu beeinträchtigen, die auf demselben System ausgeführt werden.
Siehe auch
venv.- virtuelle Maschine
Ein vollständig in Software definierter Computer. Die virtuelle Maschine von Python führt den vom Bytecode-Compiler erzeugten Bytecode aus.
- Zen von Python
Eine Auflistung der Python-Entwurfsprinzipien und -Philosophien, die zum Verständnis und zur Anwendung der Sprache hilfreich sind. Die Auflistung kann durch Eingabe von „
import this“ an der interaktiven Eingabeaufforderung aufgerufen werden.