首先来看两张图,局部变量与全局变量的区别:  

  局部变量:

  

class MyClass():def a(self):n=100print('a中的n数值为:%d'%(n))def b(self):n=n+200print('b中的n数值为:%d'%(n))

  这个时候就会报错,函数b中的n=n+200会显示n未定义错误,原因是n只是在函数a中定义了一个值100,但是函数b中并未赋值,如果还是要使用n这个数值,就可以定义一个全局变量,表示区分我这里写成_n

  全局变量:

_n=1111
class MyClass():def a(self):n=100print('a中的n数值为:%d'%(n))def b(self):global _nn=_n+1111print('b中的n数值为:%d'%(n))return _n
ret=MyClass()
print(ret.b())

运行的结果:

b中的n数值为:2222
1111

如果修改n=_n+1111为_n=_n+1111,那么全局变量也会随之改变,示例代码如下:

_n=1111
class MyClass():def a(self):n=100print('a中的n数值为:%d'%(n))return _ndef b(self):global _n_n=_n+1111print('b中的n数值为:%d'%(_n))return _n
ret=MyClass()
print(ret.b())
print(ret.a())

运行结果:

b中的n数值为:2222
2222
a中的n数值为:100
2222

这里可以看见,在调用b函数后,已经对全局变量_n进行了修改,变成了2222,再接下来调用a函数的时候,返回值return _n是已经被b函数修改后的全局变量_n,数值是2222。

如果再次调用b函数,数值将会变成3333,因为全局变量_n在2222的基础上又一次被b函数+1111。

代码如下:

_n=1111
class MyClass():def a(self):n=100print('a中的n数值为:%d'%(n))return _ndef b(self):global _n_n=_n+1111print('b中的n数值为:%d'%(_n))return _n
ret=MyClass()
print(ret.b())
print(ret.b())
print(ret.b())
print(ret.a())

运行结果:

b中的n数值为:2222
2222
b中的n数值为:3333
3333
b中的n数值为:4444
4444
a中的n数值为:100
4444

当然,如果你看着打印结果后面跟着把函数返回值也打印了很不舒服,也可以直接写成ret.b(),不需要print,这样就只会打印:b中的n数值为:2222,而不会把返回值2222跟在后面打印出来

ps:值得注意的是,引用全局变量保留字global一般不要省略不写,否则有时候会产生不正常的结果。

转载于:https://www.cnblogs.com/utsuro/p/8656788.html

python基础--局部变量与全局变量相关推荐

  1. python画聚类图_python绘制的聚类图Python的局部变量和全局变量使用解惑

    局部变量:在函数中定义的变量,作用域是当前函数,只对当前函数起作用. 全局变量:在代码开头定义的变量,作用域是整段代码,对整段代码起作用. 先看下面的实例, 最后给结论.name = 'PythonT ...

  2. 【Python】局部变量和全局变量以及组合数据(列表)类型

    局部变量和全局变量是不同的变量 局部变量是函数内部的占位符,与全局变量可能重名但不同.函数运算结束后,局部变量就会被释放,它只是用于函数内部运算,可以用global保留字在函数内部使用全局变量 n,s ...

  3. Python中局部变量和全局变量的详解

    1.局部变量 定义: 局部变量,就是在函数内部定义的变量 约束: 其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的 实例: def test1():a = 120print( ...

  4. Python入门--局部变量,全局变量,作用域,LEGB规则

    #变量的作用域-->程序代码能访问该变量的区域.变量可以被访问的范围.变量发挥作用的范围. #根据变量的有效范围,可分为 #局部变量 #1,在函数内定义并使用的变量,只在函数内部有效, # 局部 ...

  5. python的 局部变量与全局变量

    局部变量: 只在函数内部定义并使用的变量,只在定义的函数内部使用有效, def function_a():a = 1def function_b(): a =1 只能在函数function_a 中使用 ...

  6. python中局部变量和全局变量

    局部变量,就是在函数内部定义的变量 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响 局部变量的作用,为了临时保存数据需要在函数 在函数外边定义的变量叫做全局变量 全局变量能够在所有 ...

  7. python将局部变量转为全局变量

    https://blog.csdn.net/chutianwen1464/article/details/100981704

  8. python基础知识整理-Python3基础知识(一)

    1.使用类似三目运算符的方式来实现一个数的绝对值 if else # 输入一个数,然后利用一个语句求它的绝对值 num = int(input("请输入一个整数:")) num_a ...

  9. Python自学教程--Python基础知识

    1.使用类似三目运算符的方式来实现一个数的绝对值 if else # 输入一个数,然后利用一个语句求它的绝对值num = int(input("请输入一个整数:"))num_abs ...

最新文章

  1. GIT_忽略文件和属性文件配置
  2. 映射到此登录名的用户_小课堂:什么是数据映射以及如何进行数据映射
  3. end_form_tag 已经在rails2.x中去掉了
  4. 窗口分析函数_18_算累计百分位数
  5. 张一鸣倡议AI发展要讲责任,马维英谈头条AI现状和未来 | 实录
  6. 新零售企业构建智慧营销体系
  7. 电脑中必装的十四款软件
  8. 使用axis调用WebService,Java WebService调用工具类
  9. 全奖热招 | TUM、HKU、McGill、UTS等8所高校全奖博士招生信息汇总
  10. 基于长短期记忆神经网络和卷积神经网络(convLSTM)的股票涨跌预测模型(附代码)
  11. html化妆品商城设计,基于HTML5的彩妆购物网站设计任务书
  12. 8.4 单片机按键介绍
  13. 新能源车牌 普通车牌 特殊车牌正则校验
  14. 毫米波雷达传感器,无人机避障安全应用,雷达感应技术发展
  15. 篮球与计算机技术,浅析计算机技术应用对高校篮球教学的作用与影响
  16. IDEA的ultimate(最终版)与community(社区版)的区别?
  17. C/C++模拟按键按下弹起
  18. Xcode安装特定版本系统的模拟器(不支持断点下载所以总是下载失败)
  19. 自媒体短视频搬运如何伪原创上热门!老司机教你伪原创短视频的做法
  20. 未曾清贫难成人,不经打击老天真

热门文章

  1. UI_布局_总体思路
  2. Oracle SGA优化
  3. OpenCV中Kinect的使用(3)
  4. 在碎片化阅读充斥眼球的时代,要高效读论文
  5. ECCV2020 | Cityscapes上83.7 mIoU,通过解耦的主体和边缘监督改进语义分割
  6. 17毫秒每帧!实时语义分割与深度估计
  7. 基于OpenCV与Dlib的行人计数开源实现
  8. android 购票代码,android完美电影购票源码
  9. 《Python编程从入门到实践》记录之类的创建
  10. 文本分类(下) | 卷积神经网络(CNN)在文本分类上的应用