A Python, cal definir els identificadors (noms de variables, funcions, classes, etc.) segons les regles. Els noms que no compleixin les regles no es poden utilitzar com a identificadors i provocaran un error.
Aquí es proporciona la informació següent.
- Caràcters que es poden utilitzar o no en identificadors (noms)
- Caràcters ASCII
- Caràcter Unicode
- normalització (per exemple, en matemàtiques)
- Comproveu si la cadena és un identificador vàlid:
isidentifier()
- Paraules que no es poden utilitzar com a identificadors (noms) (paraules reservades)
- Paraules que no s’han d’utilitzar com a identificadors (noms)
- Convencions de denominació per a PEP8
La descripció següent es dóna a Python 3 i pot ser diferent a Python 2.
- Caràcters que es poden utilitzar o no en identificadors (noms)
- Comproveu si la cadena és un identificador vàlid: isidentifier ()
- Paraules que no es poden utilitzar com a identificadors (noms) (paraules reservades)
- Paraules que no s’han d’utilitzar com a identificadors (noms)
- Convencions de denominació per a PEP8
Caràcters que es poden utilitzar o no en identificadors (noms)
Indica caràcters que es poden utilitzar o no com a identificadors (noms).
A més, tot i que hi ha moltes coses per escriure, bàsicament tot el que cal recordar és el següent.
- Utilitzeu lletres majúscules i minúscules, números i ratlles baixes.
- La primera (primera) lletra no pot ser un número.
Caràcters ASCII
Els caràcters ASCII que es poden utilitzar com a identificadors (noms) són els alfabets majúscules i minúscules (A ~ Z, a ~ z), els números (0 ~ 9) i els guions baixos (_). L’alfabet distingeix entre majúscules i minúscules.
AbcDef_123 = 100
print(AbcDef_123)
# 100
No es poden utilitzar símbols que no siguin subratllats.
# AbcDef-123 = 100
# SyntaxError: can't assign to operator
A més, els números no es poden utilitzar al principi (primera lletra).
# 1_abc = 100
# SyntaxError: invalid token
Els punts baixos també es poden utilitzar al principi.
_abc = 100
print(_abc)
# 100
Tanmateix, tingueu en compte que un subratllat al principi pot tenir un significat especial.
Caràcter Unicode
Des de Python 3, també es poden utilitzar caràcters Unicode.
変数1 = 100
print(変数1)
# 100
No es poden utilitzar tots els caràcters Unicode i, segons la categoria Unicode, no es poden utilitzar alguns. Per exemple, no es poden utilitzar símbols com els signes de puntuació i els pictogrames.
# 変数。 = 100
# SyntaxError: invalid character in identifier
# ☺ = 100
# SyntaxError: invalid character in identifier
Consulteu la documentació oficial dels codis de la categoria Unicode que es poden utilitzar.
En molts casos, no hi ha cap avantatge a l’ús de caràcters xinesos, etc., simplement perquè també es poden utilitzar caràcters Unicode (sense error).
normalització (per exemple, en matemàtiques)
Els caràcters Unicode es converteixen a la forma normalitzada NFKC per a la seva interpretació. Per exemple, els alfabets d’amplada completa es converteixen en alfabets de mitja amplada (caràcters ASCII).
Tingueu en compte que, fins i tot si el codi font mostra una visualització diferent, es considera el mateix objecte i se sobreescriurà.
ABC = 100
ABC = -100
print(ABC)
# -100
print(ABC)
# -100
print(ABC is ABC)
# True
Comproveu si la cadena és un identificador vàlid: isidentifier ()
Es pot comprovar si una cadena és vàlida o no com a identificador amb el mètode de cadena isidentifier ().
Retorna cert si és vàlid com a identificador i fals si no és vàlid.
print('AbcDef_123'.isidentifier())
# True
print('AbcDef-123'.isidentifier())
# False
print('変数1'.isidentifier())
# True
print('☺'.isidentifier())
# False
Paraules que no es poden utilitzar com a identificadors (noms) (paraules reservades)
Hi ha algunes paraules (paraules reservades) que no es poden utilitzar com a identificadors encara que siguin cadenes vàlides com a identificadors (noms).
Com que una paraula reservada és una cadena vàlida com a identificador, isidentifier () retorna true, però es produeix un error si s’utilitza com a identificador.
print('None'.isidentifier())
# True
# None = 100
# SyntaxError: can't assign to keyword
Per obtenir una llista de paraules reservades i comprovar si una cadena és una paraula reservada, utilitzeu el mòdul de paraules clau de la biblioteca estàndard.
Paraules que no s’han d’utilitzar com a identificadors (noms)
Els noms de les funcions integrades de Python, per exemple, es poden utilitzar com a identificadors, de manera que podeu assignar-los nous valors com a variables.
Per exemple, len () és una funció integrada que retorna el nombre d’elements d’una llista o el nombre de caràcters d’una cadena.
print(len)
# <built-in function len>
print(len('abc'))
# 3
Si assigneu un valor nou a aquest nom len, la funció original es sobreescriurà i quedarà inutilitzable. Tingueu en compte que no s’imprimirà cap error ni avís en assignar un valor nou.
print(len('abc'))
# 3
len = 100
print(len)
# 100
# print(len('abc'))
# TypeError: 'int' object is not callable
Un altre error comú és fer servir list = [0, 1, 2], cosa que fa impossible fer servir list (). Ves amb compte.
Convencions de denominació per a PEP8
PEP significa Python Enhancement Proposal, un document que descriu noves funcions i altres aspectes de Python.
PEP stands for Python Enhancement Proposal. A PEP is a design document providing information to the Python community, or describing a new feature for Python or its processes or environment.
PEP 1 — PEP Purpose and Guidelines | Python.org
PEP8 és el vuitè i descriu la “Guia d’estil per al codi Python”, és a dir, la guia d’estil per a Python.
També s’esmenten les convencions de denominació.
Consulteu l’enllaç anterior per obtenir més detalls, però, per exemple, es recomana el següent estil d’escriptura.
- Mòdul
lowercase_underscore
- Minúscules + subratllat
- Paquet
lowercase
- totes les minúscules
- Classes, excepcions
CapitalizedWords
(CamelCase
)- Majúscula de la primera lletra d’una paraula, sense subratllat
- Funcions, variables i mètodes
lowercase_underscore
- Minúscules + subratllat
- constant
ALL_CAPS
- Majúscules + subratllat
Tanmateix, si la vostra organització no té les seves pròpies convencions de denominació, es recomana seguir PEP8.