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变量作用范围实例分析
Jul 07 Python
在Python中的Django框架中进行字符串翻译
Jul 27 Python
Python编写Windows Service服务程序
Jan 04 Python
python实现识别手写数字 python图像识别算法
Mar 23 Python
python hbase读取数据发送kafka的方法
Dec 27 Python
使用Python自动化破解自定义字体混淆信息的方法实例
Feb 13 Python
python使用pipeline批量读写redis的方法
Feb 18 Python
详解Python传入参数的几种方法
May 16 Python
PowerBI和Python关于数据分析的对比
Jul 11 Python
django模型动态修改参数,增加 filter 字段的方式
Mar 16 Python
python 实现分组求和与分组累加求和代码
May 18 Python
Python入门学习之类的相关知识总结
May 25 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 图像函数大举例(非原创)
2009/06/20 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
php实现微信发红包功能
2018/07/13 PHP
javascript实现的元素拖动函数宿主为浏览器
2014/07/21 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
详解javascript高级定时器
2015/12/31 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
nodejs使用express获取get和post传值及session验证的方法
2017/11/09 NodeJs
vue2 前端搜索实现示例
2018/02/26 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
vue 地区选择器v-distpicker的常用功能
2019/07/23 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
2019/10/26 Javascript
[52:31]VP vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python获得一个月有多少天的方法
2015/06/04 Python
Python构造自定义方法来美化字典结构输出的示例
2016/06/16 Python
python读取excel表格生成erlang数据
2017/08/26 Python
python实现用户答题功能
2018/01/17 Python
解决Python安装后pip不能用的问题
2018/06/12 Python
python算法题 链表反转详解
2019/07/02 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
使用python创建生成动态链接库dll的方法
2020/05/09 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
大学自荐信
2013/12/12 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
2014年审计人员工作总结
2014/12/19 职场文书
质量承诺书格式范文
2015/04/28 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
Java实现简易的分词器功能
2021/06/15 Java/Android