Skip to content

Nomi di variabili validi e regole di denominazione in Python

Python

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.