简单了解python变量的作用域


Posted in Python onJuly 30, 2019

1.效果图:

简单了解python变量的作用域

2.代码

# 作用域 是 对象生效的区域(对象能被使用的区域)
# 全局作用域在任意位置可生效
# 局部作用域在函数内生效

c = 20 # 全局变量

def fn():
  d = 10 # a定义在了函数内部,所以他的作用域就是函数内部,函数外部无法访问
  print('函数内部:','c =',c)
  print('函数内部:','d =',d)

fn()  
 
print('函数外部获取:','c =',c)
print('函数外部获取:','d =',d)


# 在Python中一共有两种作用域
# 全局作用域
#  - 全局作用域在程序执行时创建,在程序执行结束时销毁
#  - 所有函数以外的区域都是全局作用域
#  - 在全局作用域中定义的变量,都属于全局变量,全局变量可以在程序的任意位置被访问
#  
# 函数作用域
#  - 函数作用域在函数调用时创建,在调用结束时销毁
#  - 函数每调用一次就会产生一个新的函数作用域
#  - 在函数作用域中定义的变量,都是局部变量,它只能在函数内部被访问
#  
# 变量的查找
#  - 当我们使用变量时,会优先在当前作用域中寻找该变量,如果有则使用,
#    如果没有则继续去上一级作用域中寻找,如果有则使用,
#    如果依然没有则继续去上一级作用域中寻找,以此类推
#    直到找到全局作用域,依然没有找到,则会抛出异常
#      NameError: name 'a' is not defined

3. 在函数内修改全局变量 使用global关键字

效果图:

简单了解python变量的作用域

代码:

a = 20

def fn3():
  # a = 10 # 在函数中为变量赋值时,默认都是为局部变量赋值
  # 如果希望在函数内部修改全局变量,则需要使用global关键字,来声明变量
  global a # 声明在函数内部的使用a是全局变量,此时再去修改a时,就是在修改全局的a
  a = 10 # 修改全局变量
  print('函数内部:','a =',a)

fn3()
print('函数外部:','a =',a)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现上传样本到virustotal并查询扫描信息的方法
Oct 05 Python
使用python生成目录树
Mar 29 Python
解决Python3中的中文字符编码的问题
Jul 18 Python
解决Pycharm运行时找不到文件的问题
Oct 29 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
Jan 07 Python
python实现矩阵打印
Mar 02 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
Jun 27 Python
python 画出使用分类器得到的决策边界
Aug 21 Python
Python 装饰器原理、定义与用法详解
Dec 07 Python
Python使用type动态创建类操作示例
Feb 29 Python
python 高阶函数简单介绍
Feb 19 Python
python实现高效的遗传算法
Apr 07 Python
学习和使用python的13个理由
Jul 30 #Python
Win10系统下安装labelme及json文件批量转化方法
Jul 30 #Python
python利用tkinter实现屏保
Jul 30 #Python
django 微信网页授权登陆的实现
Jul 30 #Python
python tkinter库实现气泡屏保和锁屏
Jul 29 #Python
django迁移数据库错误问题解决
Jul 29 #Python
python实现桌面托盘气泡提示
Jul 29 #Python
You might like
php读取和保存base64编码的图片内容
2017/04/22 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
2019/04/04 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
JavaScript运动原理基础知识详解
2020/04/02 Javascript
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
Python验证码识别处理实例
2015/12/28 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
python实现二维插值的三维显示
2018/12/17 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
python面试题小结附答案实例代码
2019/04/11 Python
Python Celery多队列配置代码实例
2019/11/22 Python
django 扩展user用户字段inlines方式
2020/03/30 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
2020/06/08 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
2014年文学毕业生自我鉴定
2014/04/23 职场文书
中学生操行评语
2014/04/24 职场文书
应届硕士毕业生自荐信
2014/05/26 职场文书
大学课外活动总结
2014/07/09 职场文书
医院合作协议书
2014/08/19 职场文书
郭明义电影观后感
2015/06/08 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python