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实现的一个自动售饮料程序代码分享
Aug 25 Python
Python列表append和+的区别浅析
Feb 02 Python
asyncio 的 coroutine对象 与 Future对象使用指南
Sep 11 Python
Python绘制3d螺旋曲线图实例代码
Dec 20 Python
python3+PyQt5使用数据库窗口视图
Apr 24 Python
Django认证系统user对象实现过程解析
Mar 02 Python
pandas 强制类型转换 df.astype实例
Apr 09 Python
Python flask框架实现浏览器点击自定义跳转页面
Jun 04 Python
python使用建议技巧分享(三)
Aug 18 Python
OpenCV读取与写入图片的实现
Oct 13 Python
python 递归相关知识总结
Mar 03 Python
Python OpenCV超详细讲解基本功能
Apr 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中的 == 运算符进行字符串比较
2006/11/26 PHP
php && 逻辑与运算符使用说明
2010/03/04 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
document对象execCommand的command参数介绍
2006/08/01 Javascript
javascript 回到顶部效果的实现代码
2014/02/17 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
js实现上下左右键盘控制div移动
2020/01/16 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
Django卸载之后重新安装的方法
2017/03/15 Python
Python正则表达式经典入门教程
2017/05/22 Python
python处理按钮消息的实例详解
2017/07/11 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
详解python数据结构和算法
2019/04/18 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
什么叫做SQL注入,如何防止
2016/10/04 面试题
电子商务专业个人的自我评价
2013/11/19 职场文书
投标诚信承诺书
2014/05/26 职场文书
法学专业求职信
2014/07/15 职场文书
新教师培训心得体会
2014/09/02 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
党员民主评议自我评价
2014/10/20 职场文书
2014年变电站工作总结
2014/12/19 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
redis中lua脚本使用教程
2021/11/01 Redis
Java实现扫雷游戏详细代码讲解
2022/05/25 Java/Android