简单了解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实现系统状态监测和故障转移实例方法
Nov 18 Python
Unicode和Python的中文处理
Mar 19 Python
Python反爬虫技术之防止IP地址被封杀的讲解
Jan 09 Python
浅谈python的深浅拷贝以及fromkeys的用法
Mar 08 Python
十分钟搞定pandas(入门教程)
Jun 21 Python
python3.6生成器yield用法实例分析
Aug 23 Python
python求一个字符串的所有排列的实现方法
Feb 04 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 Python
Python对excel的基本操作方法
Feb 18 Python
对Keras自带Loss Function的深入研究
May 25 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实现网站插件机制的方法
2009/11/10 PHP
php strcmp使用说明
2010/04/22 PHP
php实现单链表的实例代码
2013/03/22 PHP
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
php更新mysql后获取改变行数的方法
2014/12/25 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
2016/05/20 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
js格式化时间的简单实例
2016/11/27 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
vue两组件间值传递 $router.push实现方法
2019/05/15 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
2020/08/20 Javascript
详解vite+ts快速搭建vue3项目以及介绍相关特性
2021/02/25 Vue.js
简单讲解Python中的数字类型及基本的数学计算
2016/03/11 Python
python 集合 并集、交集 Series list set 转换的实例
2018/05/29 Python
Python实现多态、协议和鸭子类型的代码详解
2019/05/05 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
python随机数分布random均匀分布实例
2019/11/27 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
Tensorflow累加的实现案例
2020/02/05 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
2020/11/13 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
Android面试题附答案
2014/12/08 面试题
幼儿园中班教学反思
2014/02/10 职场文书
初中成绩单评语
2014/12/29 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python