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利用多进程将大量数据放入有限内存的教程
Apr 01 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 Python
python多进程实现进程间通信实例
Nov 24 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
python逐行读写txt文件的实例讲解
Apr 03 Python
python的常用模块之collections模块详解
Dec 06 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
numpy.linspace函数具体使用详解
May 27 Python
Django自定义用户登录认证示例代码
Jun 30 Python
Pytorch加载部分预训练模型的参数实例
Aug 18 Python
Python获取指定网段正在使用的IP
Dec 14 Python
全网最全python库selenium自动化使用详细教程
Jan 12 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
德劲1103二次变频版的打磨
2021/03/02 无线电
深入理解PHP中的Streams工具
2015/07/03 PHP
PHP实现伪静态方法汇总
2016/01/13 PHP
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
axios异步提交表单数据的几种方法
2019/08/11 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
简单谈谈python中的语句和语法
2017/08/10 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
深入理解Tensorflow中的masking和padding
2020/02/24 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
写给女朋友的检讨书
2014/01/28 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
汽修专业自荐信
2014/07/07 职场文书
物流管理专业推荐信
2014/09/06 职场文书
见义勇为事迹材料
2014/12/24 职场文书
报名委托书
2015/01/29 职场文书
导游词之长城八达岭
2019/09/24 职场文书
springboot如何初始化执行sql语句
2021/06/22 Java/Android
JavaScript实现两个数组的交集
2022/03/25 Javascript