Nombres válidos y no válidos y convenciones de nomenclatura para identificadores (por ejemplo, nombres de variables) en Python

Negocio

En Python, los identificadores (nombres de variables, funciones, clases, etc.) deben ser definidos de acuerdo a reglas. Los nombres que no siguen las reglas no pueden ser utilizados como identificadores y darán lugar a un error.

La siguiente información se proporciona aquí.

  • Caracteres que pueden y no pueden utilizarse en los identificadores (nombres)
    • Caracteres ASCII
    • Carácter Unicode
      • normalización (por ejemplo, en matemáticas)
  • Comprueba si la cadena es un identificador válido:isidentifier()
  • Palabras que no pueden utilizarse como identificadores (nombres) (palabras reservadas)
  • Palabras que no deben utilizarse como identificadores (nombres)
  • Convenciones de nomenclatura para PEP8

La siguiente descripción se da en Python 3, y puede ser diferente en Python 2.

Caracteres que pueden y no pueden utilizarse en los identificadores (nombres)

Indica los caracteres que pueden y no pueden utilizarse como identificadores (nombres).

Además, aunque hay muchas cosas que escribir, básicamente lo único que hay que recordar es lo siguiente.

  • Utilice letras mayúsculas y minúsculas, números y guiones bajos.
  • La primera (primera) letra no puede ser un número.

Caracteres ASCII

Los caracteres ASCII que pueden utilizarse como identificadores (nombres) son los alfabetos en mayúsculas y minúsculas (A~Z,a~z), los números (0~9) y los guiones bajos (_). El alfabeto distingue entre mayúsculas y minúsculas.

AbcDef_123 = 100
print(AbcDef_123)
# 100

No se pueden utilizar símbolos que no sean guiones bajos.

# AbcDef-123 = 100
# SyntaxError: can't assign to operator

Además, no se pueden utilizar números al principio (primera letra).

# 1_abc = 100
# SyntaxError: invalid token

También se pueden utilizar guiones bajos al principio.

_abc = 100
print(_abc)
# 100

Sin embargo, tenga en cuenta que un guión bajo al principio puede tener un significado especial.

Carácter Unicode

Desde Python 3, también se pueden utilizar caracteres Unicode.

変数1 = 100
print(変数1)
# 100

No se pueden utilizar todos los caracteres Unicode y, dependiendo de la categoría Unicode, algunos no se pueden utilizar. Por ejemplo, no se pueden utilizar símbolos como los signos de puntuación y los pictogramas.

# 変数。 = 100
# SyntaxError: invalid character in identifier

# ☺ = 100
# SyntaxError: invalid character in identifier

Consulte la documentación oficial para conocer los códigos de categoría Unicode que pueden utilizarse.

En muchos casos, no hay ninguna ventaja en el uso de caracteres chinos, etc., simplemente porque los caracteres Unicode también se pueden utilizar (sin error).

normalización (por ejemplo, en matemáticas)

Los caracteres Unicode se convierten a la forma normalizada NFKC para su interpretación. Por ejemplo, los alfabetos de ancho completo se convierten en alfabetos de medio ancho (caracteres ASCII).

Tenga en cuenta que aunque el código fuente muestre una pantalla diferente, se considera el mismo objeto y se sobrescribirá.

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

Comprueba si la cadena es un identificador válido: isidentifier()

Se puede comprobar si una cadena es válida como identificador con el método isidentifier().

Devuelve true si es válido como identificador, y false si no es válido.

print('AbcDef_123'.isidentifier())
# True

print('AbcDef-123'.isidentifier())
# False

print('変数1'.isidentifier())
# True

print('☺'.isidentifier())
# False

Palabras que no pueden utilizarse como identificadores (nombres) (palabras reservadas)

Hay algunas palabras (palabras reservadas) que no pueden utilizarse como identificadores aunque sean cadenas válidas como identificadores (nombres).

Como una palabra reservada es una cadena válida como identificador, isidentifier() devuelve true, pero se produce un error si se utiliza como identificador.

print('None'.isidentifier())
# True

# None = 100
# SyntaxError: can't assign to keyword

Para obtener una lista de palabras reservadas y comprobar si una cadena es una palabra reservada, utilice el módulo de palabras clave de la biblioteca estándar.

Palabras que no deben utilizarse como identificadores (nombres)

Los nombres de las funciones incorporadas de Python, por ejemplo, pueden utilizarse como identificadores, de modo que puedes asignarles nuevos valores como variables.

Por ejemplo, len() es una función integrada que devuelve el número de elementos de una lista o el número de caracteres de una cadena.

print(len)
# <built-in function len>

print(len('abc'))
# 3

Si asigna un nuevo valor a este nombre len, la función original se sobrescribirá y quedará inutilizada. Tenga en cuenta que no se imprimirá ningún error o advertencia al asignar un nuevo valor.

print(len('abc'))
# 3

len = 100
print(len)
# 100

# print(len('abc'))
# TypeError: 'int' object is not callable

Otro error común es usar list = [0, 1, 2], lo que hace imposible usar list(). Tenga cuidado.

Convenciones de nomenclatura para PEP8

PEP son las siglas de Python Enhancement Proposal, un documento que describe nuevas características y otros 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 es el octavo, y describe la «Guía de estilo para el código Python», es decir, la guía de estilo para Python.

También se mencionan las convenciones de denominación.

Consulte el enlace anterior para obtener más detalles, pero, por ejemplo, se recomienda el siguiente estilo de escritura.

  • Módulo
    • lowercase_underscore
    • Minúsculas + guión bajo
  • Paquete
    • lowercase
    • todas las letras minúsculas
  • Clases, excepciones
    • CapitalizedWords(CamelCase)
    • Escriba la primera letra de una palabra en mayúsculas, sin guiones bajos
  • Funciones, variables y métodos
    • lowercase_underscore
    • Minúsculas + guión bajo
  • constante
    • ALL_CAPS
    • Mayúsculas + guión bajo

Sin embargo, si su organización no tiene sus propias convenciones de nomenclatura, se recomienda seguir el PEP8.

Copied title and URL