Breve descripción de las Reglas de Alcance?


¿Qué exactamente son las reglas de alcance de Python?

Si tengo algún código:

code1
class Foo:
   code2
   def spam.....
      code3
      for code4..:
       code5
       x()

¿Dónde se encuentra x? Algunas opciones posibles incluyen la lista anterior:

  1. En el archivo fuente adjunto
  2. En el espacio de nombres de clase
  3. En la definición de la función
  4. En la variable de índice de bucle for
  5. Dentro del bucle for

También está el contexto durante la ejecución, cuando la función spam se pasa a otro lugar. Y tal vez las funciones lambda pasan un poco diferente?

Debe haber una simple referencia o algoritmo en alguna parte. Es un mundo confuso para los programadores intermedios de Python.


Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32

Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52