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列表append和+的区别浅析
Feb 02 Python
用C++封装MySQL的API的教程
May 06 Python
Python中的pass语句使用方法讲解
May 14 Python
将Python代码嵌入C++程序进行编写的实例
Jul 31 Python
教大家使用Python SqlAlchemy
Feb 12 Python
python使用paramiko实现远程拷贝文件的方法
Apr 18 Python
python利用socketserver实现并发套接字功能
Jan 26 Python
python 将列表中的字符串连接成一个长路径的方法
Oct 23 Python
Python 将Matrix、Dict保存到文件的方法
Oct 30 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
Jul 04 Python
Django 外键的使用方法详解
Jul 19 Python
Django通用类视图实现忘记密码重置密码功能示例
Dec 17 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 修改、增加xml结点属性的实现代码
2013/10/22 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
JSON JQUERY模板实现说明
2010/07/03 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
2016/12/29 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
2018/08/24 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
python使用append合并两个数组的方法
2015/04/28 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
PyQt5实现简易电子词典
2019/06/25 Python
python基于递归解决背包问题详解
2019/07/03 Python
如何使用python传入不确定个数参数
2020/02/18 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
考核工作实施方案
2014/03/30 职场文书
我爱我校演讲稿
2014/05/21 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
就业推荐表导师评语
2014/12/31 职场文书
工会经费申请报告
2015/05/15 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
MySQL存储过程及语法详解
2022/08/05 MySQL