Articles of scope

¿Por qué una de mis variables no necesita statement mientras que la otra no?

Este código se ejecuta sin errores. Pero en la función find_available_filenumber la variable render_folder no está declarada. Entonces mi pregunta es ¿por qué esto no produce un error? Si full_filename como parámetro, obtengo el error: UnboundLocalError: local variable ‘full_filename’ referenced before assignment. No entiendo por qué esto no sucede también con render_folder , en mi […]

¿Las variables definidas dentro de las comprensiones de la lista se filtran en el ámbito de cierre?

No puedo encontrar ningún lugar que defina este comportamiento: if [x for x in [0, 1, -1] if x > 0]: val = x ¿Qué tan seguro es este código? ¿Se asignará siempre val al último elemento de la lista si algún elemento de la lista es mayor que 0?

¿Dónde está nonlocals ()?

¿Cómo obtengo las variables no locales para el scope actual? Las funciones vars , locals y globals existen, pero ¿existe una función para obtener los nonlocals ? ¿Por qué no se enumeran los no locales cuando se llama vars ? Actualizar Mi problema es que no hay manera de enumerar las variables disponibles en el […]

Python 3: compartir variables entre métodos en una clase

Buscando cómo hacer una variable establecida por un método / función en una clase accesible a otro método / función en esa misma clase sin tener que hacer un exceso (y código problemático) fuera. Aquí hay un ejemplo que no funciona, pero puede mostrarte lo que estoy tratando de hacer: #I just coppied this one […]

Python, ¿cómo puedo cambiar el valor de una variable en el ámbito principal?

por ejemplo: statement de statement declarará una nueva variable local. foo = ‘global’ def func1(): foo = ‘func1’ def func2(): foo = ‘local variable in func2’ La statement global use usará foo en global: def func2(): global foo foo = ‘global changed in func2’ #changed the foo value in global scope ¿Cómo puedo cambiar la […]

Sujeto orientado o refinamientos con objetos de python incorporados

Objetivo: ampliar las clases primarias con roles que solo son válidos en un contexto determinado. Esto funciona: # from https://github.com/niccokunzmann/wwp/blob/master/C_builtinTypes.py from relative import roleOf, useRoles @roleOf(int) class NaturalNumber: # int gets successor only in this module @property def successor(self): return 1 + self @roleOf(tuple) @roleOf(list) class MyList: @property def first(self): return self[0] @useRoles def test(): […]

¿Por qué el enlace estático funciona de manera diferente para la clase y la función?

En Python (probado en 2.7.6) todas las variables están vinculadas estáticamente a un scope en tiempo de comstackción. Este proceso está bien descrito en http://www.python.org/dev/peps/pep-0227/ y http://docs.python.org/2.7/reference/executionmodel.html Se establece explícitamente que “Si una operación de enlace de nombre ocurre en cualquier lugar dentro de un bloque de código, todos los usos del nombre dentro del […]

¿Cuál es el scope de una semilla aleatoria en Python?

Si utilizo la función python random.seed(my_seed) en una clase en mi módulo, ¿permanecerá esta semilla para todas las otras clases instanciadas en este módulo?

Alcance variable fuera de las clases.

Mi editor de texto de elección es extensible a través de complementos de Python. Requiere que extienda clases y anule sus métodos. La estructura general se ve similar al fragmento de abajo. Tenga en cuenta que la firma de la función es fija. ftp_client se supone que es compartido por las instancias de ambas clases. […]

¿Cómo crear variables de ámbito dinámicas en Python?

Estoy traduciendo algún código de lisp a Python. En lisp, puede tener una construcción de dejar con las variables introducidas declaradas como especiales y, por lo tanto, tener un scope dynamic. (Ver http://en.wikipedia.org/wiki/Dynamic_scope#Dynamic_scoping ) ¿Cómo puedo hacer lo mismo en Python? Parece que el lenguaje no admite esto directamente, si es cierto, ¿cuál sería una […]