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实现的防DDoS脚本
Feb 08 Python
Python中的类学习笔记
Sep 23 Python
python logging日志模块的详解
Oct 29 Python
python实现批量修改服务器密码的方法
Aug 13 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
TensorFlow打印输出tensor的值
Apr 19 Python
如何在python中执行另一个py文件
Apr 30 Python
Python filter()及reduce()函数使用方法解析
Sep 05 Python
Python collections.deque双边队列原理详解
Oct 05 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
Dec 11 Python
Matlab求解数组中的最大值及它所在的具体位置
Apr 16 Python
浅谈Python数学建模之整数规划
Jun 23 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
用Flash图形化数据(一)
2006/10/09 PHP
php 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
如何突破PHP程序员的技术瓶颈分析
2011/07/17 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
2015/09/29 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
javascript 读取图片文件的大小
2009/06/25 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
javascript基本语法
2016/05/31 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
JsChart组件使用详解
2018/03/04 Javascript
security.js实现的RSA加密功能示例
2018/06/06 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
2019/06/17 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
Element Carousel 走马灯的具体实现
2020/07/26 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
python发送邮件接收邮件示例分享
2014/01/21 Python
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
Python与Redis的连接教程
2015/04/22 Python
Python脚本实现自动发带图的微博
2016/04/27 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
10款最好的Python开发编辑器
2019/07/03 Python
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
软件测试题目
2013/02/27 面试题
区域总监的岗位职责
2013/11/21 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
董事长助理工作职责
2014/06/08 职场文书
2014年个人师德工作总结
2014/12/04 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python