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基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 Python
python itchat实现微信好友头像拼接图的示例代码
Aug 14 Python
Python实现嵌套列表及字典并按某一元素去重复功能示例
Nov 30 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
Apr 29 Python
python字符串分割及字符串的一些常规方法
Jul 24 Python
Python 中使用 PyMySQL模块操作数据库的方法
Nov 10 Python
python实现两个一维列表合并成一个二维列表
Dec 02 Python
pytorch实现Tensor变量之间的转换
Feb 17 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
Feb 25 Python
python实现大文本文件分割成多个小文件
Apr 20 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中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
php GD绘制24小时柱状图
2008/06/28 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
JQuery给元素添加/删除节点比如select
2013/04/02 Javascript
js关于字符长度限制的问题示例探讨
2014/01/24 Javascript
jQuery 计算iframe 窗口大小的方法
2014/05/13 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
ES6中module模块化开发实例浅析
2017/04/06 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
夯基础之手撕javascript继承详解
2020/11/09 Javascript
[02:21]十步杀一人,千里不留行——DOTA2全新英雄天涯墨客展示
2018/08/29 DOTA
Python3 queue队列模块详细介绍
2018/01/05 Python
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
使用tensorflow实现线性svm
2018/09/07 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
2019/08/02 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
Python 字典中的所有方法及用法
2020/06/10 Python
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
小狗电器官方商城:中国高端吸尘器品牌
2017/03/29 全球购物
局域网定义和特性
2016/01/23 面试题
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
2013/07/26 面试题
财务管理个人自荐书范文
2013/11/24 职场文书
团员个人的自我评价
2013/12/02 职场文书
自荐书范文
2013/12/08 职场文书
汽车车尾标语大全
2015/08/11 职场文书
解决WINDOWS电脑开机后桌面没有任何图标
2022/04/09 数码科技