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生成不重复随机值的方法
May 11 Python
python daemon守护进程实现
Aug 27 Python
python3模块smtplib实现发送邮件功能
May 22 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
Jun 11 Python
Python线性拟合实现函数与用法示例
Dec 13 Python
python实现多层感知器MLP(基于双月数据集)
Jan 18 Python
详解PyTorch手写数字识别(MNIST数据集)
Aug 16 Python
python中for循环变量作用域及用法详解
Nov 05 Python
Python实现大数据收集至excel的思路详解
Jan 03 Python
python实现每天自动签到领积分的示例代码
Aug 18 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
Oct 27 Python
关于python中readlines函数的参数hint的相关知识总结
Jun 24 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
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
2015/09/29 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
Laravel框架控制器的middleware中间件用法分析
2019/09/30 PHP
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
canvas实现弧形可拖动进度条效果
2017/05/11 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
vue实现Input输入框模糊查询方法
2021/01/29 Javascript
详解React 条件渲染
2020/07/08 Javascript
python获取当前日期和时间的方法
2015/04/30 Python
简单了解django缓存方式及配置
2019/07/19 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
在python image 中实现安装中文字体
2020/05/16 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
办理生育手续介绍信
2014/01/14 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
竞选班干部演讲稿100字
2014/08/20 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
个人学习总结范文
2015/02/15 职场文书
纪检监察立案决定书
2015/06/24 职场文书
bat批处理之字符串操作的实现
2022/03/16 Python
日本动漫十大公认神作:第五现已全网禁播,《死亡笔记》在榜
2022/03/18 日漫
python lambda 表达式形式分析
2022/04/03 Python
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技
java.util.NoSuchElementException原因及两种解决方法
2022/06/28 Java/Android