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 + openpyxl处理excel2007文档思路以及心得
Jul 14 Python
Python自动扫雷实现方法
Jul 25 Python
python不换行之end=与逗号的意思及用途
Nov 21 Python
python2和python3的输入和输出区别介绍
Nov 20 Python
Python 移动光标位置的方法
Jan 20 Python
Django 接收Post请求数据,并保存到数据库的实现方法
Jul 12 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
Aug 05 Python
python实现名片管理器的示例代码
Dec 17 Python
tensorflow 自定义损失函数示例代码
Feb 05 Python
spyder 在控制台(console)执行python文件,debug python程序方式
Apr 20 Python
Python私有属性私有方法应用实例解析
Sep 15 Python
使用python+pygame开发消消乐游戏附完整源码
Jun 10 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新手NOTICE错误常见解决方法
2011/12/07 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
2016/10/13 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
JS+canvas画一个圆锥实例代码
2017/12/13 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
python 实现调用子文件下的模块方法
2018/12/07 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
Python sorted排序方法如何实现
2020/03/31 Python
python中线程和进程有何区别
2020/06/17 Python
python中format函数如何使用
2020/06/22 Python
python3.5的包存放的具体路径
2020/08/16 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
UNIX文件类型
2013/08/29 面试题
力学专业毕业生自荐信
2013/11/17 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
助学金感谢信
2015/01/20 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS
Python获取字典中某个key的value
2022/04/13 Python