python基础--局部变量与全局变量
首先来看两张图,局部变量与全局变量的区别:
局部变量:
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基础--局部变量与全局变量相关推荐
- python画聚类图_python绘制的聚类图Python的局部变量和全局变量使用解惑
局部变量:在函数中定义的变量,作用域是当前函数,只对当前函数起作用. 全局变量:在代码开头定义的变量,作用域是整段代码,对整段代码起作用. 先看下面的实例, 最后给结论.name = 'PythonT ...
- 【Python】局部变量和全局变量以及组合数据(列表)类型
局部变量和全局变量是不同的变量 局部变量是函数内部的占位符,与全局变量可能重名但不同.函数运算结束后,局部变量就会被释放,它只是用于函数内部运算,可以用global保留字在函数内部使用全局变量 n,s ...
- Python中局部变量和全局变量的详解
1.局部变量 定义: 局部变量,就是在函数内部定义的变量 约束: 其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的 实例: def test1():a = 120print( ...
- Python入门--局部变量,全局变量,作用域,LEGB规则
#变量的作用域-->程序代码能访问该变量的区域.变量可以被访问的范围.变量发挥作用的范围. #根据变量的有效范围,可分为 #局部变量 #1,在函数内定义并使用的变量,只在函数内部有效, # 局部 ...
- python的 局部变量与全局变量
局部变量: 只在函数内部定义并使用的变量,只在定义的函数内部使用有效, def function_a():a = 1def function_b(): a =1 只能在函数function_a 中使用 ...
- python中局部变量和全局变量
局部变量,就是在函数内部定义的变量 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响 局部变量的作用,为了临时保存数据需要在函数 在函数外边定义的变量叫做全局变量 全局变量能够在所有 ...
- python将局部变量转为全局变量
https://blog.csdn.net/chutianwen1464/article/details/100981704
- python基础知识整理-Python3基础知识(一)
1.使用类似三目运算符的方式来实现一个数的绝对值 if else # 输入一个数,然后利用一个语句求它的绝对值 num = int(input("请输入一个整数:")) num_a ...
- Python自学教程--Python基础知识
1.使用类似三目运算符的方式来实现一个数的绝对值 if else # 输入一个数,然后利用一个语句求它的绝对值num = int(input("请输入一个整数:"))num_abs ...
最新文章
- GIT_忽略文件和属性文件配置
- 映射到此登录名的用户_小课堂:什么是数据映射以及如何进行数据映射
- end_form_tag 已经在rails2.x中去掉了
- 窗口分析函数_18_算累计百分位数
- 张一鸣倡议AI发展要讲责任,马维英谈头条AI现状和未来 | 实录
- 新零售企业构建智慧营销体系
- 电脑中必装的十四款软件
- 使用axis调用WebService,Java WebService调用工具类
- 全奖热招 | TUM、HKU、McGill、UTS等8所高校全奖博士招生信息汇总
- 基于长短期记忆神经网络和卷积神经网络(convLSTM)的股票涨跌预测模型(附代码)
- html化妆品商城设计,基于HTML5的彩妆购物网站设计任务书
- 8.4 单片机按键介绍
- 新能源车牌 普通车牌 特殊车牌正则校验
- 毫米波雷达传感器,无人机避障安全应用,雷达感应技术发展
- 篮球与计算机技术,浅析计算机技术应用对高校篮球教学的作用与影响
- IDEA的ultimate(最终版)与community(社区版)的区别?
- C/C++模拟按键按下弹起
- Xcode安装特定版本系统的模拟器(不支持断点下载所以总是下载失败)
- 自媒体短视频搬运如何伪原创上热门!老司机教你伪原创短视频的做法
- 未曾清贫难成人,不经打击老天真