För att se en lista över Python-nyckelord (reserverade ord), använd nyckelordet

Företag

En lista över Python-nyckelord (reserverade ord) finns i nyckelordsmodulen i standardbiblioteket.

Nyckelord (reserverade ord) kan inte användas som namn (identifierare) för variabelnamn, funktionsnamn, klassnamn osv.

Här finns följande information.

  • Hämta en lista över Python-nyckelord (reserverade ord):keyword.kwlist
  • Kontrollera om strängen är ett nyckelord (reserverat ord):keyword.iskeyword()
  • Skillnaden mellan nyckelord och reserverade ord

Som vi nämnde i förra avsnittet är nyckelord och reserverade ord helt olika begrepp.

Följande exempelkod använder Python 3.7.3. Observera att nyckelorden (reserverade ord) kan skilja sig åt beroende på version.

Hämta en lista över nyckelord i Python (reserverade ord): keyword.kwlist

Keyword.kwlist innehåller en lista över nyckelord (reserverade ord) i Python.

I följande exempel används pprint för att göra utmatningen lättare att läsa.

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

Elementen i listan är strängar.

print(keyword.kwlist[0])
# False

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

Om du försöker använda dessa namn som identifierare (variabelnamn, funktionsnamn, klassnamn osv.) får du ett felmeddelande.

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

Kontrollera om strängen är ett nyckelord (reserverat ord): keyword.iskeyword()

Du kan kontrollera om en sträng är ett nyckelord (reserverat ord) med hjälp av keyword.iskeyword().

När du anger den sträng du vill kontrollera som ett argument returneras true om det är ett nyckelord och false om det inte är ett nyckelord.

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

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

Skillnaden mellan nyckelord och reserverade ord

Även om vi har använt dem utan att göra någon åtskillnad är nyckelord och reserverade ord strikt sett två olika begrepp.

  • Nyckelord: ord med särskild betydelse i språkspecifikationen.
  • Reserverade ord: ord som uppfyller reglerna för identifierare som strängar men som inte kan användas som identifierare.

Se följande länkar för mer information, inklusive exempel som att goto är ett reserverat ord men inte ett nyckelord i 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

I Python (åtminstone från och med Python 3.7) är alla nyckelord reserverade ord och det finns inga andra reserverade ord förutom nyckelord, så det är säkert att använda dem utan att göra någon skillnad.

Se även följande artikel om namn som kan användas som identifierare.