Python variables locales y variables globales globales

Cuando declara variables dentro de una definición de función, no tienen relación con otras variables con el mismo nombre fuera de la función, es decir, los nombres de las variables son  locales para la función  . Esto se llama  el alcance de la variable  . El alcance de todas las variables es el bloque en el que se definen, desde el punto en que se definen sus nombres.

usar variables locales

Ejemplo 7.3 Uso de variables locales

#!/usr/bin/python
# Filename: func_local.py


def func(x):
    print 'x is', x
    x = 2
    print 'Changed local x to', x

x = 50
func(x)
print 'x is still', x

(archivo fuente: código/func_local.py )

producción

$ python func_local.py
x is 50
Changed local x to 2
x is still 50

cómo funciona

En una función, la primera vez que usamos xun  valor  , Python usa el valor del parámetro declarado por la función.

A continuación, 2asignamos el valor a x. xes una variable local de la función. Entonces, cuando cambiamos el valor dentro de la función x, el definido en el bloque principal xno se ve afectado.

En la última printdeclaración, demostramos que los valores en el bloque principal xno se ven afectados.

utilizar la declaración global

Si desea asignar un valor a una variable definida fuera de una función, debe decirle a Python que el nombre de la variable no es local, sino  global  . Usamos globaldeclaraciones para lograr esta funcionalidad. Sin globaluna declaración, es imposible asignar un valor a una variable definida fuera de una función.

Puede usar el valor de una variable definida fuera de la función (suponiendo que no haya ninguna variable con el mismo nombre dentro de la función). Sin embargo, no le animo a que haga esto, y debería tratar de evitarlo, porque no le queda claro al lector del programa dónde se define la variable. Una globaldeclaración de uso deja en claro que las variables se definen fuera del bloque.

Ejemplo 7.4 Uso de la declaración global

#!/usr/bin/python
# Filename: func_global.py


def func():
    global x

    print 'x is', x
    x = 2
    print 'Changed local x to', x

x = 50
func()
print 'Value of x is', x

(源文件:code/func_global.py

输出

$ python func_global.py
x is 50
Changed global x to 2
Value of x is 2

它如何工作

global语句被用来声明x是全局的——因此,当我们在函数内把值赋给x的时候,这个变化也反映在我们在主块中使用x的值的时候。

你可以使用同一个global语句指定多个全局变量。例如global x, y, z



http://woodpecker.org.cn/abyteofpython_cn/chinese/ch07s03.html


作者推荐:

http://www.tubemate.video

Supongo que te gusta

Origin blog.csdn.net/mldxs/article/details/8559973
Recomendado
Clasificación