Skip to content

Schlüsselwörter und reservierte Wörter in Python

Python

In Python sind zumindest ab Python 3.7 alle Schlüsselwörter reservierte Wörter, sodass SIE Schlüsselwörter nicht als Bezeichner verwenden können.

Sie können eine Liste von Python-Schlüsselwörtern mit dem Schlüsselwortmodul in der Standardbibliothek abfragen.

Dieser Artikel hat folgenden Inhalt.

  • Der Unterschied zwischen Schlüsselwörtern und reservierten Wörtern
  • Rufen Sie eine Liste mit Python-Schlüsselwörtern ab:keyword.kwlist
  • Überprüfen Sie, ob die Zeichenfolge ein Python-Schlüsselwort ist:keyword.iskeyword()

Der folgende Beispielcode wird auf Python 3.7.3 ausgeführt. Bitte beachten Sie, dass sich die Schlüsselwörter je nach Version unterscheiden können.

Der Unterschied zwischen Schlüsselwörtern und reservierten Wörtern

Schlüsselwörter und reservierte Wörter sind streng genommen unterschiedliche Konzepte.

Schlüsselwörter haben in einer Sprache eine besondere Bedeutung und sind Teil der Syntax.

Reservierte Wörter sind Wörter, die nicht als Bezeichner (Variablen, Funktionen usw.) used Werden can, da sie von der Sprache reserviert sind.

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

Siehe auch den following Artikel für Namen, die als Bezeichner used Werden can.

Rufen Sie eine Liste mit Python-Schlüsselwörtern ab:keyword.kwlist

Eine Liste von Schlüsselwörtern in Python wird in keyword.kwlist gespeichert.

Im following Beispiel WIRD pprint used, um die Ausgabe besser lesbar zu machen.

import keyword
import pprint

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

print(len(keyword.kwlist))
# 35

pprint.pprint(keyword.kwlist, compact=True)
# ['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 in der Liste sind str-Strings.

print(keyword.kwlist[0])
# False

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

Wird dieser Name als Bezeichner verwendet Werden (Variablennamen, Funktionsnamen, Klassennamen usw.), WIRD Ein Fehler generiert.

# True = 100
# SyntaxError: can't assign to keyword

Überprüfen Sie, ob die Zeichenfolge ein Python-Schlüsselwort ist:keyword.iskeyword()

Sie können mit keyword.iskeyword() überprüfen, ob ein String ein Schlüsselwort ist.

Gibt True zurück, wenn die angegebene Zeichenfolge ein Schlüsselwort ist, und False, wenn dies nicht der Fall ist.

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

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