/ / restringir los ámbitos de las variables locales en python - python, namespaces

restringir los ámbitos de las variables locales en python - python, namespaces

Cuando hay una función larga, ¿cómo limitar el alcance de las variables dentro de solo una sección de la función? Sé que en muchos idiomas se puede hacer esto con {}. ¿Cómo hacer esto en python?

Soy consciente de que una función separada para esosección encapsulará variables a su espacio de nombres local. Pero para una función larga y lineal, muchas personas argumentan que no tiene sentido escribir muchas funciones (y, por lo tanto, nombres) que solo se llaman una vez.

Respuestas

0 para la respuesta № 1

En general, puede "t. Python solo crea ámbitos para módulos (archivos, en general), clases y funciones; las variables pueden tener una duración más limitada solo en unos pocos casos especiales, como el target_list en una lista de comprensión en Python 3. No hay un ámbito de nivel de bloque como en Perl.

Por lo tanto, sus posibles soluciones son:

  • Crear funciones o clases de un solo uso. La función tendría que ser llamada, mientras que la clase nunca tendría que ser nombrada nuevamente después de su definición, porque las definiciones de la clase se ejecutan inmediatamente.
  • del variables cuando hayas terminado con ellas.

Dato curioso: aceptar esta limitación de Python es lo que finalmente nos permitió deshacernos de let en Hy, porque no hay manera de hacer que funcione como uno esperaría.