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 26进制计算实现方法
May 28 Python
Python字符串拼接、截取及替换方法总结分析
Apr 13 Python
深入浅析Python中join 和 split详解(推荐)
Jun 30 Python
Python自定义线程池实现方法分析
Feb 07 Python
python实现键盘控制鼠标移动
Nov 27 Python
Python利用heapq实现一个优先级队列的方法
Feb 03 Python
为什么你还不懂得怎么使用Python协程
May 13 Python
Django实现文件上传下载
Oct 06 Python
python线程join方法原理解析
Feb 11 Python
Python字符串的15个基本操作(小结)
Feb 03 Python
Python字典和列表性能之间的比较
Jun 07 Python
python tqdm用法及实例详解
Jun 16 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使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
Laravel 5.3 学习笔记之 错误&日志
2016/08/28 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
2019/04/09 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
msn上的tab功能Firefox对childNodes处理的一个BUG
2008/01/21 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
浅谈js中的this问题
2017/08/31 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
javascript实现拼图游戏
2021/01/29 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
python实现定制交互式命令行的方法
2014/07/03 Python
pytorch permute维度转换方法
2018/12/14 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
在校硕士自我鉴定
2014/01/23 职场文书
跟单业务员岗位职责
2014/03/08 职场文书
初三学生个人自我评定
2014/04/06 职场文书
人事经理岗位职责
2014/04/28 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
个人四风问题对照检查材料思想汇报
2014/10/06 职场文书
2014年安全员工作总结
2014/11/13 职场文书
道德模范事迹材料
2014/12/20 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
mybatis调用sqlserver存储过程返回结果集的方法
2021/05/08 SQL Server