
In Python, almeno a partire da Python 3.7, tutte le parole chiave sono parole riservate, quindi non puoi usare le parole chiave come identificatori.
Puoi interrogare un elenco di parole chiave Python con il modulo delle parole chiave nella libreria standard.
In questo articolo vengono descritti i seguenti contenuti.
- La differenza tra parole chiave e parole riservate
- Ottieni un elenco di parole chiave Python:
keyword.kwlist
- Controlla se la stringa è una parola chiave Python:
keyword.iskeyword()
Il codice di esempio seguente viene eseguito su Python 3.7.3. Tieni presente che le parole chiave possono variare a seconda della versione.
La differenza tra parole chiave e parole riservate
A rigor di termini, parole chiave e parole riservate sono concetti diversi.
Le parole chiave hanno un significato speciale in una lingua e fanno parte della sintassi.
Le parole riservate sono parole che non possono essere utilizzate come identificatori (variabili, funzioni, ecc.), perché sono riservate dalla lingua.
…
In Python, almeno a partire da Python 3.7, tutte le parole chiave sono parole riservate e non ci sono parole riservate che non siano parole chiave.
Vedere anche il seguente articolo per i nomi che possono essere usati come identificatori.
Ottieni un elenco di parole chiave Python:keyword.kwlist
Un elenco di parole chiave in Python è memorizzato in keyword.kwlist.
Nell’esempio seguente, pprint viene utilizzato per semplificare la lettura dell’output.
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']
Gli elementi nell’elenco sono stringhe str.
print(keyword.kwlist[0])
# False
print(type(keyword.kwlist[0]))
# <class 'str'>
Se questi nomi vengono utilizzati come identificatori (nomi di variabili, nomi di funzioni, nomi di classi, ecc.), viene generato un errore.
# True = 100
# SyntaxError: can't assign to keyword
Controlla se la stringa è una parola chiave Python:keyword.iskeyword()
Puoi controllare se una stringa è una parola chiave con keyword.iskeyword().
Restituisce True se la stringa specificata è una parola chiave e False se non lo è.
print(keyword.iskeyword('None'))
# True
print(keyword.iskeyword('none'))
# False