python局部变量和全局变量

发布时间:2020-08-31 00:01:13

来源:51CTO

阅读:98

作者:qq5d6f345f0205e

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

一.局部变量

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

2

3

4

5

6

7

8deffunc1():

# 在函数内部定义的变量默认都是局部变量

a=1

print(a)

# 函数结束,局部变量a的生命周期结束

# 由于a是局部变量,并且a的生命周期已经结束,外部再次调用局部变量a,程序会产生异常,崩溃

print(a)

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

二.全局变量

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

2

3

4

5

6

7

8

9a=2

deffunc1():

print(a)

# 函数结束,局部变量的生命周期结束

# 全局变量直到程序结束,生命周期才结束

func1()

# 输出全局变量a

print(a)

输出结果:1

22

2

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

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

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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@Author:何以解忧

@Blog(个人博客地址): shuopython.com

@WeChat Official Account(微信公众号):猿说python

@Github:www.github.com

@File:python_global.py

@Time:2019/10/10 21:00

@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""

# 在函数内部定义的变量默认都是局部变量

a=2

deffunc1():

# global a # 声明 a 是全局变量,在该函数内部对a的操作就是对全局变量a的操作

a=1# 如果没有上一行代码,默认a就是函数内部的局部变量,函数结束,生命周期结束

print(a)

# 函数结束,局部变量的生命周期结束

func1()

# 输出全局变量a

print(a)

输出结果:1

21

2

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

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

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

21

1

四.重点总结

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

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

猜你喜欢:

1.python变量

2.pycharm设置头文件模板

转载请注明:猿说Python » python局部变量和全局变量

python局部变量转全局变量_python局部变量和全局变量相关推荐

  1. python中全局变量_python如何使用全局变量

    python全局变量的使用:1.引用全局变量,代码为[if i in b:print("%d in list b" %i)]:2.修改全局变量,代码为[print "be ...

  2. python 库 全局变量_python局部变量和全局变量global

    当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的.这称为变量的 作用域 .所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开 ...

  3. [转载] 在python中、关于全局变量和局部变量、以下_python中的全局变量和局部变量

    参考链接: Python全局,局部和非局部变量 1. 使用局部变量 deffunc(x): print'x is', x x =2 print'Changed local x to', x x =50 ...

  4. 在python中、关于全局变量和局部变量、以下_python中的全局变量和局部变量

    1. 使用局部变量 deffunc(x): print'x is', x x =2 print'Changed local x to', x x =50 func(x) print'x is stil ...

  5. python跨文件全局变量_Python跨文件全局变量的实现方法示例

    前言 在C语言中,由于变量一定是先声明,后使用,所以我们可以清楚的知道,现在使用的变量是全局还是局部,比如: int a = 5; void test(void) { a = 1; // 没有先声明, ...

  6. python怎样设置全局变量_Python教程之全局变量用法

    本文实例讲述了Python全局变量用法.分享给大家供大家参考,具体如下: 全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量.今天有同事问一个关于全局变量的问题,才发现其中原来还有门道. ...

  7. python 使用全局变量_Python教程之全局变量用法

    Python教程之全局变量用法 本文实例讲述了Python全局变量用法.分享给大家供大家参考,具体如下: 全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量.今天有同事问一个关于全局变量 ...

  8. python跨文件全局变量_Python跨文件全局变量的使用

    尽管某些书籍上总是说避免使用全局变量,但是在实际的需求不断变化中,往往定义一个全局变量是最可靠的方法,但是又必须要避免变量名覆盖. Python 中 global 关键字可以定义一个变量为全局变量,但 ...

  9. python声明全局变量_python怎样声明全局变量

    python中定义全局变量可以使用global关键字 global介绍 在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用域是 ...

最新文章

  1. C#程序输出信息到调试窗口的几种方式
  2. Oracle CBO 与 RBO
  3. zeros--创建零矩阵
  4. 基于Python的卷积神经网络和特征提取
  5. 判断一个变量类型是数组还是对象
  6. 小知识点BeanUtils.copyProperties
  7. 函数可重入性及编写规范
  8. CUL8R的完整形式是什么?
  9. 群赛 ZOJ3741(dp) ZOJ3911(线段树)
  10. Citrix MCS桌面管理技术解读
  11. python在windows 比linux 慢,为什么python在Windows上这么慢?
  12. SoapUI使用教程
  13. ISO/IEC17025与ISO9000族标准的区别和联系
  14. python函数库分类及实例_Python中Scikit-Learn库的分类方法总览
  15. 阿里云化身“智能云管”,助力中国联通首次实现大规模平台自主运维
  16. linux的头文件下载,Linux内核头文件(linux headers)
  17. 终端连接工具Tabby的下载、安装与配置
  18. 史上最欠揍的28条短信
  19. Ucenter 整合第三方应用
  20. 在Authorware中插入PowerPoint演示文稿的实现方法

热门文章

  1. 基于计算的蛋白质复合物预测方法综述
  2. 【增强学习】Torch中的增强学习层
  3. 如何重置mac上的系统管理控制器smc教程
  4. qt画笔效果笔锋:铅笔、画笔、钢笔、毛笔、蜡笔
  5. mac不同窗口间切换的快捷键
  6. PowerMILL中大型汽车模具3+2编程视频教程
  7. 【Android面试】主线程中的Looper.loop()一直无限循环为什么不会造成ANR?
  8. 配置Fairseq的wav2ec采坑日志3:编译安装flashlgiht
  9. yaw(pan)/pitch(tilt)/roll计算
  10. 简述线程的几种状态以及状态之间的转换