Keywords und Reserved Words in Python

Der folgende Beispielcode läuft in Python 3.11.3. Es ist zu beachten, dass die Schlüsselwörter je nach Version unterschiedlich sein können.

Der Unterschied zwischen Schlüsselwörtern (keywords) und reservierten Wörtern (reserved words)

Streng genommen handelt es sich bei Schlüsselwörtern und reservierten Wörtern um unterschiedliche Konzepte.

„Schlüsselwörter haben eine besondere Bedeutung in einer Sprache und sind Teil der Syntax.
Reservierte Wörter sind Wörter, die nicht als Bezeichner (Variablen, Funktionen usw.) verwendet werden können, da sie von der Sprache reserviert sind.
In z.B. Java ist ‚goto‘ ein reserviertes Wort, aber kein Schlüsselwort (folglich kann man es überhaupt nicht verwenden).“

In Python, zumindest ab Python 3.11, sind alle Schlüsselwörter reservierte Wörter, und es gibt keine reservierten Wörter, die keine Schlüsselwörter sind.

Eine Liste von Python-Schlüsselwörtern erhalten: keyword.kwlist

Eine Liste der Schlüsselwörter (keywords) in Python wird in keyword.kwlist gespeichert.

>>> import keyword
>>> print(type(keyword.kwlist))
<class 'list'>

>>> print(len(keyword.kwlist))
35

>>> print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break',
'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for',
'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not',
'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

Die Elemente der Liste sind Strings.

>>> print(keyword.kwlist[0])
False

>>> print(type(keyword.kwlist[0]))
<class 'str'>

Wenn diese Namen als Bezeichner (Variablennamen, Funktionsnamen, Klassennamen usw.) verwendet werden, wird ein Fehler ausgelöst.

>>> True = 100
  File "<stdin>", line 1
    True = 100
    ^^^^
SyntaxError: cannot assign to True

Prüfen, ob die Zeichenkette ein Python-Schlüsselwort ist: keyword.iskeyword()

Um zu prüfen, ob eine Zeichenkette ein Schlüsselwort (keyword) ist, verwendet man keyword.iskeyword().
Die Methode gibt True zurück, wenn die angegebene Zeichenkette ein Schlüsselwort ist, und False, wenn sie es nicht ist. Die Groß- und Kleinschreibung wird beachtet.

>>> print(keyword.iskeyword('None'))
True

>>> print(keyword.iskeyword('none'))
False