aprendizaje pitón 15-- espacio de nombres y alcance

A. Espacio de nombres

Espacio de nombres que se almacena con la asignación de nombre de objeto / relaciones locales vinculante. Para x = 3, Python asignará espacio de memoria para almacenar el objeto 3, entonces la relación de unión el nombre con 3 x almacenado en
Espacio de nombres, del x borra la relación vinculante.

1.1 espacio incorporado,

Acompañado pitón intérprete de arranque / apagado y la generación / recuperación, por lo que es el primero en ser cargada espacio de nombres, que se utiliza para almacenar algunos incorporado en los nombres, como una función de nombre de la función
>>> máximo
<Incorporado en función max> # incorporado 内建

1.2 el espacio de nombres global

archivo de Python acompaña comenzó / acabado de productos / de reciclaje, es la segunda a ser espacio de nombres cargado, durante la ejecución del nombre de archivo generado será almacenado en el espacio de nombres
Los siguientes nombres,
importación sys sys # nombre del módulo
  x = 1 # nombre de la variable x
  si x == 1:
    y = 2 # variable de nombre y
foo def (x): # nombre de la función foo
  y=1
  bar def ():
    pasar
Clase de barras: No. Nombre de la clase Bar
  pasar

1.3 El espacio de nombres local

Junto con llamada / función final genera temporalmente / recuperación, parámetro de función, definida dentro del nombre de la función serán almacenados en el espacio de nombres
foo def (x):
Cuando y = 3 # llaman a la función, el código se ejecutará el nombre de la función X e Y son almacenados en el nombre local de la función en el espacio
 
espacio de carga es del orden de los nombres:
Espacio incorporado, -> espacio de nombres global -> espacio de nombres local, y encontrar un nombre, el nombre de uno de los tres debe encontrarse desde el espacio,
Encuentra el siguiente orden:
espacio de nombres local -> espacio de nombres global -> espacio incorporado,.

dos ámbitos

2.1 alcance global y ámbito local

Se puede dividir de acuerdo con diferentes nombres alcance de tres espacio de nombres en dos áreas:

1. El alcance mundial:

Situado espacio de nombres global, una función de nombres de espacio de nombres pertenecen al ámbito mundial, el nombre de la supervivencia global dentro de ese rango (a no ser eliminado, de lo contrario todo el texto
Miembro durante la ejecución de la supervivencia), lo global válida (se puede utilizar en cualquier posición);

2. ámbito local:

Situado en los nombres de espacio de nombres locales pertenecen al área local. Nombre dentro de la gama de supervivencia temporal (que se genera temporalmente cuando la función es llamada, después del final de la llamada de función
Se libera), el local efectivo (sólo se puede utilizar dentro de la función).

2.2 Alcance y búsqueda de nombres de prioridad

Encontrar un nombre en el ámbito local, la posición de partida es el ámbito local, por lo que en primer lugar encontrar un espacio de nombres local no se encuentra, ir a buscar el ámbito global: para encontrar el nombre global
El espacio no se encuentra, entonces encontrar la incorporada en el espacio de nombres, al final no se encontró el arrojará una excepción
foo def (x):
  Cuando y = 3 # llaman a la función, el código se ejecutará el nombre de la función X e Y son almacenados en el nombre local de la función en el espacio
  x = 100 # Nombre de ámbito global x
foo def ():
  x = nombre del ámbito local x 300 #
  imprimir (x) # x encontrar localmente
foo () # 300 resultados
x = 100
foo def ():
  x = 300 # generan ámbito local de la función nombre de la llamada x
foo ()
imprimir (x) # x mirando a la situación general, el resultado es 100

2.3 global y no local

 

Si desea cambiar el valor de la (tipo duro) local correspondiente al nombre de la necesidad mundial de forma global 

x = 111  

def func ():    

  , Ltd. Únete a la libre x # nombre x declaración es un nombre global, no el nombre de la nueva reciclaje    

  x = 222  

func () 

impresión (x)   

no local (): el valor correspondiente al nombre (tipo duro) contenida en la función de modificación de función externa 

x = 0 

def f1 ():    

  x = 11    

  def f2 ():        

    no local x        

    x = 22    

f2 ()    

Imprimir ( 'X en la Fórmula 1:', X)   F1 ()

Supongo que te gusta

Origin www.cnblogs.com/heirenxilou/p/12524298.html
Recomendado
Clasificación