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 open()文件处理使用介绍
Nov 30 Python
Python基础篇之初识Python必看攻略
Jun 23 Python
python使用pyqt写带界面工具的示例代码
Oct 23 Python
python3安装pip3(install pip3 for python 3.x)
Apr 03 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 Python
简单了解python关系(比较)运算符
Jul 08 Python
详解python实现交叉验证法与留出法
Jul 11 Python
Python中利用LSTM模型进行时间序列预测分析的实现
Jul 26 Python
手机使用python操作图片文件(pydroid3)过程详解
Sep 25 Python
python使用opencv在Windows下调用摄像头实现解析
Nov 26 Python
PYQT5 vscode联合操作qtdesigner的方法
Mar 24 Python
使用Python解析Chrome浏览器书签的示例
Nov 13 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网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
大家在抢红包,程序员在研究红包算法
2015/08/31 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
在React 组件中使用Echarts的示例代码
2017/11/08 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
angular6开发steps步骤条组件
2019/07/04 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
Python循环实现n的全排列功能
2019/09/16 Python
关于pycharm中pip版本10.0无法使用的解决办法
2019/10/10 Python
Python pip配置国内源的方法
2020/02/14 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
美术专业个人自我评价
2014/01/18 职场文书
白酒代理协议书范本
2014/10/26 职场文书
钳工实训报告总结
2014/11/04 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
导游词之河北野三坡
2019/12/11 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python