简单了解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标准库os.path包、glob包使用实例
Nov 25 Python
Python配置文件解析模块ConfigParser使用实例
Apr 13 Python
python自动化脚本安装指定版本python环境详解
Sep 14 Python
Python中import机制详解
Nov 14 Python
python模块之paramiko实例代码
Jan 31 Python
python利用pandas将excel文件转换为txt文件的方法
Oct 23 Python
用Python编写一个简单的CS架构后门的方法
Nov 20 Python
python 图像平移和旋转的实例
Jan 10 Python
Python XlsxWriter模块Chart类用法实例分析
Mar 11 Python
Python实现直播推流效果
Nov 26 Python
python入门:argparse浅析 nargs='+'作用
Jul 12 Python
python 将列表里的字典元素合并为一个字典实例
Sep 01 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
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
使PHP自定义函数返回多个值
2006/11/26 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
php求一个网段开始与结束IP地址的方法
2015/07/09 PHP
使用URL传输SESSION信息
2015/07/14 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
菜单效果
2006/10/14 Javascript
用js 让图片在 div或dl里 居中,底部对齐
2008/01/21 Javascript
js过滤数组重复元素的方法
2010/09/05 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
2013/08/01 Javascript
jquery实现图片滚动效果的简单实例
2013/11/23 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
js弹出对话框方式小结
2015/11/17 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
2016/04/03 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
VUE实现一个分页组件的示例
2017/09/13 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
react 组件传值的三种方法
2019/06/03 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
Python的高级Git库 Gittle
2014/09/22 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
Python对数据进行插值和下采样的方法
2018/07/03 Python
Python 编程速成(推荐)
2019/04/15 Python
linux环境下Django的安装配置详解
2019/07/22 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
比较基础的php面试题及答案-填空题
2014/04/26 面试题
电子信息工程专业自荐书
2014/06/24 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
婚礼答谢词
2015/01/04 职场文书
装配车间主任岗位职责
2015/04/08 职场文书