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 x
un valor , Python usa el valor del parámetro declarado por la función.
A continuación, 2
asignamos el valor a x
. x
es una variable local de la función. Entonces, cuando cambiamos el valor dentro de la función x
, el definido en el bloque principal x
no se ve afectado.
En la última print
declaración, demostramos que los valores en el bloque principal x
no 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 global
declaraciones para lograr esta funcionalidad. Sin global
una 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 global
declaració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