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 09 Python
详解Python的Django框架中的中间件
Jul 24 Python
sublime python3 输入换行不结束的方法
Apr 19 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
Python tkinter label 更新方法
Oct 11 Python
用Python读取几十万行文本数据
Dec 24 Python
python实现两个经纬度点之间的距离和方位角的方法
Jul 05 Python
PyQt5 控件字体样式等设置的实现
May 13 Python
如何解决安装python3.6.1失败
Jul 01 Python
python将字典内容写入json文件的实例代码
Aug 12 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
Oct 20 Python
基于Python实现一个春节倒计时脚本
Jan 22 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中Cannot send session cache limiter 的问题的方法
2007/04/27 PHP
PHP 批量删除 sql语句
2009/06/05 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
js+html5操作sqlite数据库的方法
2016/02/02 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
2016/05/05 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
Ant design vue中的联动选择取消操作
2020/10/31 Javascript
python调用短信猫控件实现发短信功能实例
2014/07/04 Python
python决策树之C4.5算法详解
2017/12/20 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
JS原生实现轮播图的几种方法
2021/03/23 Javascript
工商管理实习生自我鉴定范文
2013/12/18 职场文书
大学四年规划书范文
2013/12/27 职场文书
一份报关员的职业规划范文
2014/01/08 职场文书
门前三包责任书
2014/04/15 职场文书
文明班集体申报材料
2014/05/23 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
护士2014年终工作总结
2014/11/11 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
幼儿园大班开学寄语(2015秋季)
2015/05/27 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python
python实现简单的聊天小程序
2021/07/07 Python
vue elementUI表格控制对应列
2022/04/13 Vue.js
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技