Python局部变量与全局变量区别原理解析


Posted in Python onJuly 14, 2020

1、局部变量

name = "Yang Li"
def change_name(name):
  print("before change:",name)
  name = "你好"
  print("after change", name)
change_name(name)
print("在外面看看name改了么?",name)

输出:

before change: Yang Li
after change 你好
在外面看看name改了么? Yang Li

2、全局变量

NAME = "alex" 
def yangjian():
   global NAME       # 已经声明,NAME就是全局的的那个变量
   print('1我的名字', NAME)
   NAME = "land"     # 修改 全局的变量
   print('2我的名字', NAME)

def qupengfei():
   name = "yang"
   print('3我的名字', NAME)  

yangjian()  
qupengfei()

输出:

1我的名字 alex  
2我的名字 land
3我的名字 yang

######## 全局变量变量名大写
######## 局部变量变量名小写
#函数中 优先读取局部变量,能读取全局变量,无法对全局变量重新赋值;但是对于可变类型,可以对内部元素进行操作;如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值

3、nonlocal

name = "刚娘"

def weihou():
  name = "陈卓"
  def weiweihou():
    nonlocal name  # nonlocal,指定上一级变量,如果没有就继续往上直到找到为止
    name = "冷静"
    print(name)
  weiweihou()
  print(name)

print(name)
weihou()
print(name)
# 刚娘
# 陈卓
# 陈卓
# 刚娘

全局与局部变量

在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

函数返回值

要想获取函数的执行结果,就可以用return语句把结果返回

注意:

函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束
如果未在函数中指定return,那这个函数的返回值为None

嵌套函数

name = "Alex"
def change_name():
  name = "Alex2"
  def change_name2():
    name = "Alex3"
    print("第3层打印",name)
  change_name2() #调用内层函数
  print("第2层打印",name)
change_name()
print("最外层打印",name)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
全面分析Python的优点和缺点
Feb 07 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
python学习入门细节知识点
Mar 29 Python
Python多进程multiprocessing.Pool类详解
Apr 27 Python
Python利用Django如何写restful api接口详解
Jun 08 Python
python版本五子棋的实现代码
Dec 11 Python
通过PHP与Python代码对比的语法差异详解
Jul 10 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
Oct 24 Python
利用keras加载训练好的.H5文件,并实现预测图片
Jan 24 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
Jun 02 Python
高考考python编程是真的吗
Jul 20 Python
python使用openpyxl库读写Excel表格的方法(增删改查操作)
May 02 Python
Python迭代器协议及for循环工作机制详解
Jul 14 #Python
windows10在visual studio2019下配置使用openCV4.3.0
Jul 14 #Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 #Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
Jul 14 #Python
python3 循环读取excel文件并写入json操作
Jul 14 #Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
Jul 14 #Python
Python爬虫爬取新闻资讯案例详解
Jul 14 #Python
You might like
php笔记之:文章中图片处理的使用
2013/04/26 PHP
phpstrom使用xdebug配置方法
2013/12/17 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
javascript Onunload与Onbeforeunload使用小结
2009/12/31 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
2014/03/06 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
使用js在layui中实现上传图片压缩
2019/06/18 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
Python多项式回归的实现方法
2019/03/11 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
python3爬取torrent种子链接实例
2020/01/16 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
在阿尔卑斯山或希腊度过快乐假期:Alpine Elements
2019/12/28 全球购物
自我鉴定书范文
2013/10/02 职场文书
个人党性锻炼总结
2015/03/05 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
趣味运动会赞词
2015/07/22 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript