python变量的作用域是什么


Posted in Python onMay 26, 2020

变量作用域:

一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。

全局变量所有作用域都可读,局部变量只能在本函数可读

函数在读取变量时,优先读取函数本身自有的局部变量,再去读全局变量

全局变量

读,均可读

赋值,global

字典,列表可修改

全局变量全大写

例如

name = 'Tim' #全局变量
def f1():
  age = 18 #局部变量
  print(age,name)
 def f2():
  age=19 #局部变量
f1()
f2()
>>>
18 Tim
19 Tim

在函数内部也可以定义全局变量:

name = 'Tim' #全局变量
def f1():
  age = 18 #局部变量
  global name #定义全局变量
  name = 'Eric'
  print(age,name)
f1()
print(name)

全局变量默认可读,如果需要改变全局变量的值,需要在函数内部使用global定义

特殊:列表,字典,可修改,但不能重新赋值,如果需要重新赋值,需要在函数内部使用global定义全局变量

NAME = ['Tim','mike'] #全局变量
NAME1 = ['Eric','Jeson'] #全局变量
NAME3 = ['Tom','jane'] #全局变量
def f1():
  NAME.append('Eric') #列表的append方法可改变外部全局变量的值
  print('函数内NAME: %s'%NAME)
  NAME1 = '123' #重新赋值不可改变外部全局变量的值
  print('函数内NAME1: %s'%NAME1)
  global NAME3 #如果需要重新给列表赋值,需要使用global定义全局变量
  NAME3 = '123'
  print('函数内NAME3: %s'%NAME3)
f1()
print('函数外NAME: %s'%NAME)
print('函数外NAME1: %s'%NAME1)
print('函数外NAME3: %s'%NAME3)
>>>

函数内NAME: ['Tim', 'mike', 'Eric']

函数内NAME1: 123

函数内NAME3: 123

函数外NAME: ['Tim', 'mike', 'Eric']

函数外NAME1: ['Eric', 'Jeson']

函数外NAME3: 123

到此这篇关于python变量的作用域是什么的文章就介绍到这了,更多相关python变量的作用域内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现的各种排序算法代码
Mar 04 Python
Python开发实例分享bt种子爬虫程序和种子解析
May 21 Python
python 全文检索引擎详解
Apr 25 Python
python selenium 获取标签的属性值、内容、状态方法
Jun 22 Python
Python使用分布式锁的代码演示示例
Jul 30 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
Matplotlib使用Cursor实现UI定位的示例代码
Mar 12 Python
python 实现朴素贝叶斯算法的示例
Sep 30 Python
用python读取xlsx文件
Dec 17 Python
Flask处理Web表单的实现方法
Jan 31 Python
python实现A*寻路算法
Jun 13 Python
Python3 pywin32模块安装的详细步骤
May 26 #Python
什么是python的列表推导式
May 26 #Python
python中列表的含义及用法
May 26 #Python
初学者学习Python好还是Java好
May 26 #Python
python函数map()和partial()的知识点总结
May 26 #Python
Python selenium使用autoIT上传附件过程详解
May 26 #Python
Python的历史与优缺点整理
May 26 #Python
You might like
PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
2011/12/28 PHP
html静态页面调用php文件的方法
2014/11/13 PHP
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
PHP 实现类似js中alert() 提示框
2015/03/18 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
ExtJS DOM元素操作经验分享
2013/08/28 Javascript
浏览器的JavaScript引擎的识别方法
2013/10/20 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
vue结合Echarts实现点击高亮效果的示例
2018/03/17 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
JavaScript实现tab栏切换效果
2020/03/16 Javascript
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
Python psutil模块简单使用实例
2015/04/28 Python
Python编程产生非均匀随机数的几种方法代码分享
2017/12/13 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
nohup的用法
2014/08/10 面试题
软件测试工程师笔试题带答案
2015/03/27 面试题
企业行政文员岗位职责
2013/12/03 职场文书
物业总经理岗位职责
2014/02/28 职场文书
广告学专业求职信
2014/06/19 职场文书
超市收银员岗位职责
2015/04/07 职场文书
监守自盗观后感
2015/06/10 职场文书
初中政治教学反思
2016/02/23 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书