En Python, os identificadores (nomes de variables, funcións, clases, etc.) deben definirse segundo regras. Os nomes que non seguen as regras non se poden usar como identificadores e darán lugar a un erro.
A seguinte información ofrécese aquí.
- Caracteres que poden e non se poden usar en identificadores (nomes)
- Caracteres ASCII
- Carácter Unicode
- normalización (por exemplo, en matemáticas)
- Comproba se a cadea é un identificador válido:
isidentifier()
- Palabras que non se poden usar como identificadores (nomes) (palabras reservadas)
- Palabras que non deben usarse como identificadores (nomes)
- Convencións de nomenclatura para PEP8
A seguinte descrición dáse en Python 3, e pode ser diferente en Python 2.
- Caracteres que poden e non se poden usar en identificadores (nomes)
- Comproba se a cadea é un identificador válido: isidentifier()
- Palabras que non se poden usar como identificadores (nomes) (palabras reservadas)
- Palabras que non deben usarse como identificadores (nomes)
- Convencións de nomenclatura para PEP8
Caracteres que poden e non se poden usar en identificadores (nomes)
Indica caracteres que poden e non se poden utilizar como identificadores (nomes).
Ademais, aínda que hai moitas cousas sobre as que escribir, basicamente todo o que cómpre lembrar é o seguinte.
- Usa letras maiúsculas e minúsculas, números e guións baixos.
- A primeira (primeira) letra non pode ser un número.
Caracteres ASCII
Os caracteres ASCII que se poden usar como identificadores (nomes) son alfabetos en maiúsculas e minúsculas (A~Z,a~z), números (0~9) e guións baixos (_). O alfabeto distingue entre maiúsculas e minúsculas.
AbcDef_123 = 100
print(AbcDef_123)
# 100
Non se poden usar símbolos distintos dos guións baixos.
# AbcDef-123 = 100
# SyntaxError: can't assign to operator
Ademais, os números non se poden usar ao principio (primeira letra).
# 1_abc = 100
# SyntaxError: invalid token
Tamén se poden usar guións baixos ao principio.
_abc = 100
print(_abc)
# 100
Non obstante, teña en conta que un guión baixo ao principio pode ter un significado especial.
Carácter Unicode
Desde Python 3, tamén se poden usar caracteres Unicode.
変数1 = 100
print(変数1)
# 100
Non se poden usar todos os caracteres Unicode e, dependendo da categoría Unicode, algúns non se poden usar. Por exemplo, non se poden utilizar símbolos como signos de puntuación e pictogramas.
# 変数。 = 100
# SyntaxError: invalid character in identifier
# ☺ = 100
# SyntaxError: invalid character in identifier
Consulte a documentación oficial dos códigos de categoría Unicode que se poden usar.
En moitos casos, non hai ningunha vantaxe en usar caracteres chineses, etc., simplemente porque tamén se poden usar caracteres Unicode (sen erros).
normalización (por exemplo, en matemáticas)
Os caracteres Unicode convértense á forma normalizada NFKC para a súa interpretación. Por exemplo, os alfabetos de ancho completo convértense en alfabetos de ancho medio (caracteres ASCII).
Teña en conta que aínda que o código fonte mostra unha pantalla diferente, considérase o mesmo obxecto e sobrescribirase.
ABC = 100
ABC = -100
print(ABC)
# -100
print(ABC)
# -100
print(ABC is ABC)
# True
Comproba se a cadea é un identificador válido: isidentifier()
Se unha cadea é válida ou non como identificador pódese comprobar co método de cadea isidentifier().
Devolve true se é válido como identificador e false se non é válido.
print('AbcDef_123'.isidentifier())
# True
print('AbcDef-123'.isidentifier())
# False
print('変数1'.isidentifier())
# True
print('☺'.isidentifier())
# False
Palabras que non se poden usar como identificadores (nomes) (palabras reservadas)
Hai algunhas palabras (palabras reservadas) que non se poden usar como identificadores aínda que sexan cadeas válidas como identificadores (nomes).
Dado que unha palabra reservada é unha cadea válida como identificador, isidentifier() devolve verdadeiro, pero ocorre un erro se se usa como identificador.
print('None'.isidentifier())
# True
# None = 100
# SyntaxError: can't assign to keyword
Para obter unha lista de palabras reservadas e comprobar se unha cadea é unha palabra reservada, use o módulo de palabras clave da biblioteca estándar.
Palabras que non deben usarse como identificadores (nomes)
Os nomes das funcións integradas de Python, por exemplo, pódense usar como identificadores, polo que pode asignarlles novos valores como variables.
Por exemplo, len() é unha función integrada que devolve o número de elementos dunha lista ou o número de caracteres dunha cadea.
print(len)
# <built-in function len>
print(len('abc'))
# 3
Se lle asigna un novo valor a este nome len, a función orixinal sobrescribirase e quedará inservible. Teña en conta que non se imprimirá ningún erro ou aviso ao asignar un valor novo.
print(len('abc'))
# 3
len = 100
print(len)
# 100
# print(len('abc'))
# TypeError: 'int' object is not callable
Outro erro común é usar list = [0, 1, 2], o que fai imposible usar list(). Ten coidado.
Convencións de nomenclatura para PEP8
PEP son as siglas de Python Enhancement Proposal, un documento que describe novas funcións e outros aspectos 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 é o oitavo, e describe a “Guía de estilo para o código Python”, é dicir, a guía de estilo para Python.
Tamén se mencionan as convencións de nomenclatura.
Consulte a ligazón anterior para obter máis detalles, pero, por exemplo, recoméndase o seguinte estilo de escritura.
- Módulo
lowercase_underscore
- Minúscula + guión baixo
- Paquete
lowercase
- todas as letras minúsculas
- Clases, excepcións
CapitalizedWords
(CamelCase
)- Escribe a primeira letra dunha palabra en maiúscula, sen guión baixo
- Funcións, variables e métodos
lowercase_underscore
- Minúscula + guión baixo
- constante
ALL_CAPS
- Maiúsculas + subliñado
Non obstante, se a túa organización non ten as súas propias convencións de nomenclatura, recoméndase seguir PEP8.