Om een lijst van Python sleutelwoorden (gereserveerde woorden) te zien, gebruik het sleutelwoord

Bedrijf

Een lijst van Python sleutelwoorden (gereserveerde woorden) is te vinden in de sleutelwoordmodule van de standaardbibliotheek.

Sleutelwoorden (gereserveerde woorden) kunnen niet worden gebruikt als namen (identificatoren) voor variabelennamen, functienamen, klassenamen, enz.

De volgende informatie wordt hier verstrekt.

  • Verkrijg een lijst van Python sleutelwoorden (gereserveerde woorden):keyword.kwlist
  • Controleer of de string een sleutelwoord (gereserveerd woord) is:keyword.iskeyword()
  • Het verschil tussen trefwoorden en gereserveerde woorden

Zoals in de vorige paragraaf is gezegd, zijn trefwoorden en gereserveerde woorden strikt verschillende begrippen.

De volgende voorbeeldcode gebruikt Python 3.7.3. Merk op dat de sleutelwoorden (gereserveerde woorden) kunnen verschillen afhankelijk van de versie.

Een lijst van Python sleutelwoorden (gereserveerde woorden): keyword.kwlist

De keyword.kwlist bevat een lijst van trefwoorden (gereserveerde woorden) in Python.

In het volgende voorbeeld wordt pprint gebruikt om de uitvoer leesbaarder te maken.

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']

De elementen van de lijst zijn strings.

print(keyword.kwlist[0])
# False

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

Als je deze namen probeert te gebruiken als identifiers (variabele namen, functie namen, klasse namen, enz.), zul je een fout krijgen.

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

Controleer of de string een trefwoord is (gereserveerd woord): keyword.iskeyword()

Je kunt controleren of een string een trefwoord (gereserveerd woord) is door keyword.iskeyword() te gebruiken.

Wanneer u de tekenreeks die u wilt controleren als argument opgeeft, geeft het waar terug als het een sleutelwoord is, en vals als het dat niet is.

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

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

Het verschil tussen trefwoorden en gereserveerde woorden

Hoewel wij ze hebben gebruikt zonder onderscheid te maken, zijn sleutelwoorden en gereserveerde woorden strikt genomen twee verschillende begrippen.

  • Trefwoorden: woorden met een speciale betekenis in de taalspecificatie
  • Gereserveerde woorden: woorden die voldoen aan de regels voor identifiers als strings, maar niet als identifiers kunnen worden gebruikt.

Zie de volgende links voor meer details, inclusief voorbeelden zoals goto is een gereserveerd woord maar geen sleutelwoord in Java.

In a computer language, a reserved word (also known as a reserved identifier) is a word that cannot be used as an identifier, such as the name of a variable, function, or label – it is “reserved from use”. This is a syntactic definition, and a reserved word may have no user-define meaning.
A closely related and often conflated notion is a keyword, which is a word with special meaning in a particular context. This is a semantic definition. By contrast, names in a standard library but not built into the language are not considered reserved words or keywords. The terms “reserved word” and “keyword” are often used interchangeably – one may say that a reserved word is “reserved for use as a keyword” – and formal use varies from language to language; for this article we distinguish as above.
Reserved word – Wikipedia

Keywords have a special meaning in a language, and are part of the syntax.
Reserved words are words that cannot be used as identifiers (variables, functions, etc.), because they are reserved by the language.
language agnostic – What is the difference between “keyword” and “reserved word”? – Stack Overflow

In Python (tenminste vanaf Python 3.7) zijn alle sleutelwoorden gereserveerde woorden en er zijn geen andere gereserveerde woorden naast sleutelwoorden, dus is het veilig om ze te gebruiken zonder enig onderscheid te maken.

Zie ook het volgende artikel voor namen die als identifiers kunnen worden gebruikt.