700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python 局部变量输出到全局_Python局部变量与全局变量

python 局部变量输出到全局_Python局部变量与全局变量

时间:2018-11-28 01:37:27

相关推荐

python 局部变量输出到全局_Python局部变量与全局变量

Python中的局部全局与全局变量主要体现在函数内的变量与函数外的变量。

局部与全局就是变量的作用域(作用范围)。

当你在函数内部定义变量的时候,它们与函数外具有相同名称的变量没有任何关系,即变量对于函数来说是 局部 的。这也是这个变量的 作用域 。

所有的变量的作用域是它们被定义的块,从它们被定义的地方开始。

使用局部变量:

#!/usr/bin/envpython

#Filename:func_local.py

#-*-encoding:utf-8-*-

deffunc(x):

print'xis',x

x=2#定义函数内的变量

print'Changedlocalxto',x

x=50#这里定义了全局变量

func(x)

print'xisstill',x

输出结果:

x is 50

Changed local x to 2

x is still 50

在函数中,我们第一次使用的 x 的值的时候,Python使用函数声明的形参的值。

接着,我们把数值 2 赋值给 x 。x是函数func的局部变量,它的作用域只能在函数内部。所以,当我们改变 x 的值的时候,在主块中定义的 x 不受影响。

在最后的 print 语句中,证明了主块中的 x 的值确实受到影响。

使用 global 语句 声明全局变量:

如果你想要为一个定义在函数外的变量赋值(即想要在函数内改变主块中的变量),那么我们就必须告诉Python这个变量不是局部的,而是 全局 的。我们可使用 global 关键字来声明。如果不使用 global 是不能为定义在函数外的变量赋值的。

你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而不建议这么做,因为这使得程序的读者不清楚这个变量是在哪里定义的。使用 global 可以清楚的表明变量是在外面的块定义的。

#!/usr/bin/python

#-*-encoding:utf-8-*-

#Filename:func_global.py

deffunc():

globalx#声明变量x是全局变量

print'xis',x

x=2#在函数内部为全局变量x赋值

print'Changedlocalxto',x

x=50

func()

print'Valueofxis',x

输入结果:

x is 50

Changed global x to 2

Value of x is 2

使用 global 关键字在函数内声明了变量 x 是全局的,因此,我们在函数内为 x 赋值的时候,这个变化也反映在我们在主块中使用 x 的值的时候。

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

注意两点:

1、如果想要在函数内部去改变主块中的的变量值,需要在函数内部声明这个变量为全局变量;

2、如果在函数内部不使用 global 声明与主块中同名的变量,那么这个变量会覆盖主块的变量,在函数内而不会使用全局变量,如例一。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。