简单了解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使用面向对象方式创建线程实现12306售票系统
Dec 24 Python
python中的字典使用分享
Jul 31 Python
Python多线程同步---文件读写控制方法
Feb 12 Python
浅析Python 引号、注释、字符串
Jul 25 Python
django序列化serializers过程解析
Dec 14 Python
Django后台管理系统的图文使用教学
Jan 20 Python
Python3操作MongoDB增册改查等方法详解
Feb 10 Python
python下载卫星云图合成gif的方法示例
Feb 18 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
Apr 25 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
Jan 05 Python
python 实现体质指数BMI计算
May 26 Python
Python预测分词的实现
Jun 18 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
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
iOS10推送通知开发教程
2016/09/19 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
对JavaScript的eval()中使用函数的进一步讨论
2008/07/26 Javascript
Javascript学习笔记之相等符号与严格相等符号
2014/11/23 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
python实现屏保计时器的示例代码
2018/08/08 Python
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
Skyscanner香港:机票比价, 平机票和廉价航空机票预订
2020/02/07 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
英语专业推荐信
2013/11/16 职场文书
医院护士专业个人的求职信
2013/12/09 职场文书
家长给幼儿园的表扬信
2014/01/09 职场文书
高中美术教学反思
2014/01/19 职场文书
数学高效课堂实施方案
2014/03/29 职场文书
办理信用卡收入证明范例
2014/09/13 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
诚信承诺书
2015/01/19 职场文书
信用卡工资证明范本
2015/06/19 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
Python实现byte转integer
2021/06/03 Python
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis