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.
- Relaterade artiklar:Giltiga och ogiltiga namn och namnkonventioner för identifierare (t.ex. variabelnamn) i Python.
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.