简单了解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远程桌面协议RDPY安装使用介绍
Apr 15 Python
Python实现Sqlite将字段当做索引进行查询的方法
Jul 21 Python
Python3 Random模块代码详解
Dec 04 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
Python使用numpy模块创建数组操作示例
Jun 20 Python
python 函数中的内置函数及用法详解
Jul 02 Python
Django集成celery发送异步邮件实例
Dec 17 Python
python实现名片管理器的示例代码
Dec 17 Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 Python
Python 实现自动完成A4标签排版打印功能
Apr 09 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
Aug 03 Python
python Matplotlib数据可视化(1):简单入门
Sep 30 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
DC的38部超级英雄动画电影
2020/03/03 欧美动漫
给php新手谈谈我的学习心得
2007/02/25 PHP
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
php二维数组用键名分组相加实例函数
2013/11/06 PHP
php生成txt文件标题及内容的方法
2014/01/16 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
jQuery 中ajax异步调用的四种方式
2016/06/28 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
2016/11/09 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
详解js静态资源文件请求的处理
2017/08/01 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
详解wepy开发小程序踩过的坑(小结)
2019/05/22 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
vue+element tabs选项卡分页效果
2020/06/29 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
利用Python爬虫给孩子起个好名字
2017/02/14 Python
python之PyMongo使用总结
2017/05/26 Python
python将一组数分成每3个一组的实例
2018/11/14 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
风险评估实施方案
2014/03/09 职场文书
分层教学实施方案
2014/03/19 职场文书
党员自我评议个人对照检查材料
2014/09/16 职场文书
临时租车协议范本
2014/09/23 职场文书
教师节晚会主持词
2015/06/30 职场文书
厉行节约工作总结
2015/08/12 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
python百行代码实现汉服圈图片爬取
2021/11/23 Python