简单了解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中的jquery PyQuery库使用小结
May 13 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
Apr 18 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
Python3数据库操作包pymysql的操作方法
Jul 16 Python
Python集中化管理平台Ansible介绍与YAML简介
Jun 12 Python
python 批量修改 labelImg 生成的xml文件的方法
Sep 09 Python
python实现LRU热点缓存及原理
Oct 29 Python
python scrapy重复执行实现代码详解
Dec 28 Python
利用python绘制数据曲线图的实现
Apr 09 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
Aug 20 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 Python
关于Python使用turtle库画任意图的问题
Apr 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
Zend的Registry机制的使用说明
2013/05/02 PHP
CI框架中zip类应用示例
2014/06/17 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
2014/05/04 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
javascript常用的方法整理
2015/08/20 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
Vue框架之goods组件开发详解
2018/01/25 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
Python将图片转换为字符画的方法
2020/06/16 Python
python实现excel读写数据
2021/03/02 Python
python实现windows下文件备份脚本
2018/05/27 Python
Python分割指定页数的pdf文件方法
2018/10/26 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
护理专业自荐信范文
2014/02/26 职场文书
竞争上岗实施方案
2014/03/21 职场文书
汉语言文学毕业生自荐信范文
2014/03/24 职场文书
大学毕业生管理学求职信
2014/09/01 职场文书
2014年护士长工作总结
2014/11/11 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
高考升学宴主持词
2019/06/21 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript