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实现搜索本地文件信息写入文件的方法
Feb 22 Python
Python实现包含min函数的栈
Apr 29 Python
python数据类型_元组、字典常用操作方法(介绍)
May 30 Python
pandas按若干个列的组合条件筛选数据的方法
Apr 11 Python
Python爬虫基础之XPath语法与lxml库的用法详解
Sep 13 Python
python 用下标截取字符串的实例
Dec 25 Python
python ---lambda匿名函数介绍
Mar 13 Python
pygame用blit()实现动画效果的示例代码
May 28 Python
python打开文件的方式有哪些
Jun 29 Python
Python使用xlrd实现读取合并单元格
Jul 09 Python
Python pandas对excel的操作实现示例
Jul 21 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
Jun 28 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
德生PL550的电路分析
2021/03/02 无线电
php比较多维数组中值的大小排序实现代码
2012/09/08 PHP
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
纯js实现瀑布流布局及ajax动态新增数据
2016/04/07 Javascript
js字符串引用的两种方式(必看)
2016/09/18 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
python创建和使用字典实例详解
2013/11/01 Python
Python学生信息管理系统修改版
2018/03/13 Python
基于Python Numpy的数组array和矩阵matrix详解
2018/04/04 Python
python实现画一颗树和一片森林
2018/06/25 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
webapp字号大小跟随系统字号大小缩放的示例代码
2018/12/26 HTML / CSS
5.1手机促销活动
2014/01/17 职场文书
《挑山工》的教学反思
2014/02/16 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
医院院务公开实施方案
2014/05/03 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
远程培训的心得体会
2014/09/01 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
开业庆典嘉宾致辞
2015/08/01 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
详解Python常用的魔法方法
2021/06/03 Python
php png失真的原因及解决办法
2021/10/24 PHP
Promise静态四兄弟实现示例详解
2022/07/07 Javascript