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中的RSS处理
Apr 13 Python
Python学习之Anaconda的使用与配置方法
Jan 04 Python
python删除不需要的python文件方法
Apr 24 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
Dec 06 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
Jun 19 Python
Pandas中resample方法详解
Jul 02 Python
如何使用Python实现斐波那契数列
Jul 02 Python
学Python 3的理由和必要性
Nov 19 Python
详解Python中的分支和循环结构
Feb 11 Python
pyspark 随机森林的实现
Apr 24 Python
Docker如何部署Python项目的实现详解
Oct 26 Python
Python中return函数返回值实例用法
Nov 19 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 4.2书写安全的脚本
2006/10/09 PHP
Discuz! Passport 通行证整合
2008/03/27 PHP
php adodb分页实现代码
2009/03/19 PHP
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
学习ExtJS Panel常用方法
2009/10/07 Javascript
JavaScript Accessor实现说明
2010/12/06 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
贴近用户体验的Jquery日期、时间选择插件
2015/08/19 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
2015/09/24 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
vue.js组件之间传递数据的方法
2017/07/10 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
了解javascript中变量及函数的提升
2019/05/27 Javascript
Vue使用Proxy监听所有接口状态的方法实现
2019/06/07 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
2020/05/03 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
python 日期操作类代码
2018/05/05 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
python多进程控制学习小结
2018/10/31 Python
Python自动抢红包教程详解
2019/06/11 Python
PyQt+socket实现远程操作服务器的方法示例
2019/08/22 Python
python实现简单成绩录入系统
2019/09/19 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
Python3 assert断言实现原理解析
2020/03/02 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
表彰先进的通报
2014/01/31 职场文书
旅游节目策划方案
2014/05/26 职场文书
市场营销策划方案
2014/06/11 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
golang中的空接口使用详解
2021/03/30 Python
Python使用UDP实现720p视频传输的操作
2021/04/24 Python