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和OpenCV库将URL转换为OpenCV格式的方法
Mar 27 Python
python字符串连接方法分析
Apr 12 Python
Python在线运行代码助手
Jul 15 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
May 05 Python
python requests使用socks5的例子
Jul 25 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
keras 读取多标签图像数据方式
Jun 12 Python
python GUI模拟实现计算器
Jun 22 Python
Python csv文件记录流程代码解析
Jul 16 Python
pycharm 2020 1.1的安装流程
Sep 29 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 Python
python 中的jieba分词库
Nov 23 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 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
在PHP中设置、使用、删除Cookie的解决方法
2013/05/06 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
javascript function、指针及内置对象
2009/02/19 Javascript
jquery中this的使用说明
2010/09/06 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
2017/04/13 Javascript
vue中使用refs定位dom出现undefined的解决方法
2017/12/21 Javascript
vue实现未登录跳转到登录页面的方法
2018/07/17 Javascript
js 计算图片内点个数的示例代码
2019/04/04 Javascript
通过jQuery学习js类型判断的技巧
2019/05/27 jQuery
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
JavaScript实现简单随机点名器
2019/11/21 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
Python re模块介绍
2014/11/30 Python
Python多线程编程(五):死锁的形成
2015/04/05 Python
python保存文件方法小结
2018/07/27 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
Python如何对XML 解析
2020/06/28 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
新西兰最大的连锁超市:Countdown
2020/06/04 全球购物
我心目中的好老师活动方案
2014/08/19 职场文书
工资收入证明
2014/10/07 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL