简单了解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控制台显示时钟的示例
Feb 24 Python
Python判断文件或文件夹是否存在的三种方法
Jul 27 Python
python3获取两个日期之间所有日期,以及比较大小的实例
Apr 08 Python
Python带动态参数功能的sqlite工具类
May 26 Python
Django Admin实现三级联动的示例代码(省市区)
Jun 22 Python
python处理数据,存进hive表的方法
Jul 04 Python
python3学生名片管理v2.0版
Nov 29 Python
Python对象与引用的介绍
Jan 24 Python
Python实现的在特定目录下导入模块功能分析
Feb 11 Python
Matplotlib中rcParams使用方法
Jan 05 Python
Python Selenium操作Cookie的实例方法
Feb 28 Python
python解析json数据
Apr 29 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
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
关于php curl获取301或302转向的网址问题的解决方法
2011/06/02 PHP
php微信公众平台开发(三)订阅事件处理
2016/12/06 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
PHP调用Mailgun发送邮件的方法
2017/05/04 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
Angular2 父子组件数据通信实例
2017/06/22 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
详解如何运行vue项目
2019/04/15 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
python实现发送邮件及附件功能
2021/03/02 Python
Python学习小技巧之列表项的排序
2017/05/20 Python
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
python交互界面的退出方法
2019/02/16 Python
django富文本编辑器的实现示例
2019/04/10 Python
python仿evething的文件搜索器实例代码
2019/05/13 Python
如何在django中运行scrapy框架
2020/04/22 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
详解css position 5种不同的值的用法
2019/07/30 HTML / CSS
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
应届生体育教师自荐信
2013/10/03 职场文书
庆七一活动方案
2014/01/25 职场文书
企业文化演讲稿
2014/05/20 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
政协工作总结2015
2015/05/20 职场文书
大学生受助感言
2015/08/01 职场文书
Python帮你解决手机qq微信内存占用太多问题
2022/02/15 Python
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android