
In Python, gli identificatori (= nomi di variabili, nomi di funzioni, nomi di classi, ecc.) devono essere definiti secondo regole. I nomi che non seguono le regole non possono essere utilizzati come identificatori.
In questo articolo vengono descritti i seguenti contenuti.
- Caratteri validi per identificatori (= nomi)
- Controlla se la stringa è un identificatore valido:
isidentifier()
- Parole che non possono essere utilizzate come identificatori: parole riservate e parole chiave
- Parole che non devono essere usate come identificatori
- Convenzioni di denominazione (PEP8)
Quanto segue è per Python 3 e potrebbe essere diverso per Python 2.
Caratteri validi per identificatori (= nomi)
Qui vengono visualizzati i caratteri che possono e non possono essere utilizzati per gli identificatori (= nomi di variabili, nomi di funzioni, nomi di classi, ecc.).
Fondamentalmente, ricorda solo quanto segue.
- È possibile utilizzare alfabeti maiuscoli e minuscoli, numeri e il carattere di sottolineatura (_).
- I numeri non possono essere utilizzati come primo carattere.
È possibile utilizzare caratteri non alfabetici, come i caratteri Kanji, ma non dovrebbero essere utilizzati a meno che non vi sia una valida ragione per farlo.
ASCII
I caratteri ASCII che possono essere utilizzati per gli identificatori sono le lettere maiuscole e minuscole (A~Z, a~z), i numeri (0~9) e il carattere di sottolineatura (_).
AbcDef_123 = 100
print(AbcDef_123)
# 100
Non è possibile utilizzare simboli diversi dal tratto basso.
# AbcDef-123 = 100
# SyntaxError: can't assign to operator
I numeri non possono essere usati come prima lettera.
# 1_abc = 100
# SyntaxError: invalid token
Il carattere di sottolineatura può essere utilizzato per la prima lettera.
_abc = 100
print(_abc)
# 100
Nota che il tratto basso all’inizio può avere un significato speciale.
Unicode
In Python 3 è possibile utilizzare caratteri Unicode come Kanji e Hiragana.
変数その1 = 100
print(変数その1)
# 100
Non tutti i caratteri Unicode possono essere utilizzati. Ad esempio, non puoi usare le emoji.
# ☺ = 100
# SyntaxError: invalid character in identifier
Consulta la documentazione ufficiale per i codici di categoria Unicode che possono essere utilizzati.
Controlla se la stringa è un identificatore valido:isidentifier()
Puoi verificare se una stringa è un identificatore valido o meno con il metodo isidentifier() della stringa str.
Restituisce True se la stringa è un identificatore valido e False se non lo è.
print('AbcDef_123'.isidentifier())
# True
print('AbcDef-123'.isidentifier())
# False
print('変数その1'.isidentifier())
# True
print('☺'.isidentifier())
# False
Parole che non possono essere utilizzate come identificatori: parole riservate e parole chiave
Le parole e le parole chiave riservate sono valide come identificatori ma non possono essere utilizzate come identificatori ordinari.
Si noti che isidentifier() richiede True perché le parole e le parole chiave riservate sono stringhe valide per gli identificatori, ma viene generato un errore se le si utilizza come identificatori (= nomi di variabili, nomi di funzioni, nomi di classi, ecc. ).
print('None'.isidentifier())
# True
# None = 100
# SyntaxError: can't assign to keyword
Per ottenere un elenco di parole chiave e verificare se una stringa è una parola chiave, utilizzare il modulo parole chiave della libreria standard. Vedi il seguente articolo.
Parole che non devono essere usate come identificatori
I nomi delle funzioni integrate possono essere utilizzati come identificatori, in modo da poter loro nuovi valori.
Ad esempio, len() è una funzione incorporata che contiene il numero di elementi in un elenco o il numero di caratteri in una stringa.
print(len)
#
print(len('abc'))
# 3
Se si assegna un nuovo valore al nome len, la funzione originale viene sovrascritta. Si noti che durante l’assegnazione non viene stampato alcun errore o avviso.
print(len('abc'))
# 3
len = 100
print(len)
# 100
# print(len('abc'))
# TypeError: 'int' object is not callable
Un altro errore comune è scrivere list = [0, 1, 2] in modo che list() non possa essere utilizzatore.
Per ulteriori informazioni sulla verifica dell’elenco delle funzioni e delle costanti integrate, vedere l’articolo seguente.
Convenzioni di denominazione (PEP8)
PEP sta per Proposta di miglioramento di Python.
PEP sta per Proposta di miglioramento di Python. Un PEP è un documento di progettazione che fornisce informazioni alla comunità Python o descrive una nuova funzionalità per Python oi suoi processi o ambiente.
PEP 1 — Scopo e linee guida del PEP | Python.org
PEP8 descrive la “Guida di stile per il codice Python”.
Vengono anche menzionate le convenzioni di denominazione.
Ad esempio, sono consigliati i seguenti ancora. Vedere il collegamento sopra per i dettagli.
- Nomi dei moduli
- Nomi dei pacchetti
- Nomi di classi ed eccezioni
- Parole in maiuscolo (CamelCase)
- Nomi di funzioni, variabili e metodi
- Costanti
Se la tua organizzazione non ha le proprie convenzioni di denominazione, se consiglia di seguire PEP8.