python局部变量和全局变量(6)(python里的全局变量)

网友投稿 879 2022-09-09

python局部变量和全局变量(6)(python里的全局变量)

python局部变量和全局变量(6)(python里的全局变量)

在python开发中,变量也是有生命周期的,一旦周期结束,程序会自动清理暂用的空间,释放内存,变量分为两者,一种是局部变量,一种是全局变量,两者具体有什么区别呢……

一.局部变量

一般而言在函数内部或者类中声明的变量默认都是局部变量。一旦函数结束,变量的生命周期也会结束,占用的空间会被自动释放。

程序报错:NameError: name ‘a’ is not defined ,原因:函数内部定义的局部变量只能在函数内部使用。

二.全局变量

全局变量和局部变量相反,在函数外部或者类外部声明的变量默认为全局变量。全局变量的生命周期直到程序结束才会结束,比局部变量生命周期更长。

输出结果:

2

2

三.局部变量和全局变量的区别

1.全局变量的生命周期是直到程序结束,而局部变量生命周期是函数结束;

2.如果需要在函数内部修改全局变量的值,需要在函数内部为该全局变量前面加上 global 关键字, 否则该变量默认为函数内部定义的局部变量,示例代码如下:

输出结果:

1

2

是不上觉得很奇怪:为什么最后一个值是2,应该是1才对?

因为没有第17行代码的话,默认a只是函数内部的一个普通局部变量,所以函数内部的print函数输出到控制台是1;函数结束,函数内部的局部变量a值生命周期结束,执行fun1函数之后的print函数输出的是全局变量a的值2.

也就是说函数内部对a值得修改并没有成功,只有在函数内部,为全局变量加上关键字global声明为全局变量,才能修改成功,取消第17行得注释,控制台输出:

1

1

四.重点总结

1.注意局部变量和全局变量的生命周期;

2.如果想在函数内部修改全局变量的值,需要加上关键字global;

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python RE match对象 m.group(0)可以输出 m.group(1)为啥不可以输出第二个呢?
下一篇:Ubuntu16.04默认安装了Python2.7和3.5 升级python3.5为3.6
相关文章

 发表评论

暂时没有评论,来抢沙发吧~