Uma lista de palavras-chave Python (palavras reservadas) pode ser encontrada no módulo de palavras-chave da biblioteca padrão.
As palavras-chave (palavras reservadas) não podem ser utilizadas como nomes (identificadores) para nomes de variáveis, nomes de funções, nomes de classes, etc.
- Artigos relacionados:Nomes válidos e inválidos e convenções de nomeação de identificadores (por exemplo, nomes de variáveis) em Python
A seguinte informação é fornecida aqui.
- Obter uma lista de palavras-chave Python (palavras reservadas):
keyword.kwlist
- Verificar se a cadeia é uma palavra-chave (palavra reservada):
keyword.iskeyword()
- A diferença entre palavras-chave e palavras reservadas
Como mencionado na última secção, palavras-chave e palavras reservadas são conceitos estritamente diferentes.
O seguinte código de amostra utiliza Python 3.7.3. Note-se que as palavras-chave (palavras reservadas) podem diferir, dependendo da versão.
Obter uma lista de palavras-chave Python (palavras reservadas): keyword.kwlist
A palavra-chave.kwlist contém uma lista de palavras-chave (palavras reservadas) em Python.
No exemplo seguinte, a impressão é utilizada para facilitar a leitura da produção.
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']
Os elementos da lista são cordas.
print(keyword.kwlist[0])
# False
print(type(keyword.kwlist[0]))
# <class 'str'>
Se tentar utilizar estes nomes como identificadores (nomes de variáveis, nomes de funções, nomes de classes, etc.), receberá um erro.
# True = 100
# SyntaxError: can't assign to keyword
Verifique se a string é uma palavra-chave (palavra reservada): keyword.iskeyword()
Pode verificar se uma string é uma palavra-chave (palavra reservada) usando a palavra-chave.iskeyword().
Quando se especifica a corda que se quer verificar como argumento, ela retorna verdadeira se for uma palavra-chave, e falsa se não for.
print(keyword.iskeyword('None'))
# True
print(keyword.iskeyword('none'))
# False
A diferença entre palavras-chave e palavras reservadas
Embora as tenhamos vindo a utilizar sem fazer qualquer distinção, a rigor, as palavras-chave e as palavras reservadas são dois conceitos diferentes.
- Palavras-chave: palavras com significado especial na especificação da língua
- Palavras reservadas: palavras que satisfazem as regras para identificadores como cordas mas não podem ser utilizadas como identificadores.
Ver os seguintes links para mais detalhes, incluindo exemplos como goto é uma palavra reservada mas não uma palavra-chave em 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
Em Python (pelo menos a partir de Python 3.7) todas as palavras-chave são palavras reservadas e não há outras palavras reservadas para além de palavras-chave, pelo que é seguro utilizá-las sem fazer qualquer distinção.
Ver também o artigo seguinte para nomes que podem ser utilizados como identificadores.