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 40行代码实现人脸识别功能
Apr 02 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
May 30 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
Tesserocr库的正确安装方式
Oct 19 Python
python石头剪刀布小游戏(三局两胜制)
Jan 20 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
python多线程扫描端口(线程池)
Sep 04 Python
用python写测试数据文件过程解析
Sep 25 Python
Python下利用BeautifulSoup解析HTML的实现
Jan 17 Python
Python如何急速下载第三方库详解
Nov 02 Python
如何用python清洗文件中的数据
Jun 18 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设计模式 Decorator(装饰模式)
2011/06/26 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
javascript获取文档坐标和视口坐标
2015/05/26 Javascript
JavaScript prototype属性详解
2016/10/25 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
js如何编写简单的ajax方法库
2017/08/02 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
在Mac OS上搭建Python的开发环境
2015/12/24 Python
使用python实现生成用户信息
2017/03/20 Python
python之从文件读取数据到list的实例讲解
2018/04/19 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
python全栈知识点总结
2019/07/01 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
CSS3实现精美横向滚动菜单按钮
2017/04/14 HTML / CSS
纯CSS3单页切换导航菜单界面设计的简单实现
2016/08/16 HTML / CSS
美国旅游网站:Tours4Fun
2017/02/17 全球购物
美国和加拿大房车出售在线分类广告:RVT.com
2018/04/23 全球购物
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
Structs界面控制层技术
2013/10/11 面试题
学前教育教师求职自荐信
2013/09/22 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
三年级数学教学反思
2014/01/31 职场文书
秋季运动会广播稿大全
2014/02/17 职场文书
企业家王石演讲稿:坚持与放下
2014/04/27 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书