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中在脚本中引用其他文件函数的实现方法
Jun 23 Python
Python 基础知识之字符串处理
Jan 06 Python
神经网络python源码分享
Dec 15 Python
对Python3+gdal 读取tiff格式数据的实例讲解
Dec 04 Python
python GUI图形化编程wxpython的使用
Jul 19 Python
python flask几分钟实现web服务的例子
Jul 26 Python
Django 实现前端图片压缩功能的方法
Aug 07 Python
Python 实现Numpy中找出array中最大值所对应的行和列
Nov 26 Python
Python+OpenCV实现旋转文本校正方式
Jan 09 Python
Python模拟登入的N种方式(建议收藏)
May 31 Python
python seaborn heatmap可视化相关性矩阵实例
Jun 03 Python
如何理解及使用Python闭包
Jun 01 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
风格模板初级不完全修改教程
2006/10/09 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
2014/09/23 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
javascript开发中因空格引发的错误
2010/11/08 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
2013/01/16 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
IE浏览器下PNG相关功能
2015/07/05 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
Javascript中构造函数要注意的一些坑
2017/01/23 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
Vue父组件调用子组件事件方法
2018/02/23 Javascript
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
HTML+JavaScript实现扫雷小游戏
2019/09/30 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
Python中的日期时间处理详解
2016/11/17 Python
如何利用python查找电脑文件
2018/04/27 Python
pytorch多进程加速及代码优化方法
2019/08/19 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
Python使用Pygame绘制时钟
2020/11/29 Python
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
人力资源本科毕业生求职信
2014/06/04 职场文书
学校领导班子对照检查材料
2014/08/28 职场文书
小学生竞选班干部演讲稿(5篇)
2014/09/12 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
2015年安康杯竞赛活动总结
2015/03/26 职场文书
《西门豹》教学反思
2016/02/23 职场文书
MySQL一些常用高级SQL语句
2021/07/03 MySQL
正则表达式基础与常用验证表达式
2022/06/16 Javascript