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的WEB框架Flask中使用多个配置文件的解决方法
Apr 18 Python
Python导出数据到Excel可读取的CSV文件的方法
May 12 Python
Python实现对excel文件列表值进行统计的方法
Jul 25 Python
python: line=f.readlines()消除line中\n的方法
Mar 19 Python
Python实现随机漫步功能
Jul 09 Python
Python闭包函数定义与用法分析
Jul 20 Python
Python3.4 splinter(模拟填写表单)使用方法
Oct 13 Python
Python enumerate函数功能与用法示例
Mar 01 Python
浅谈Python的方法解析顺序(MRO)
Mar 05 Python
Python flask路由间传递变量实例详解
Jun 03 Python
python中线程和进程有何区别
Jun 17 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
Dec 07 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 随机生成10位字符代码
2009/03/26 PHP
PHP获取网址的顶级域名函数代码
2012/09/24 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
Yii2创建表单(ActiveForm)方法详解
2016/07/23 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
2019/10/21 PHP
javascript之解决IE下不渲染的bug
2007/06/29 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
2014/11/23 Javascript
JavaScript中的闭包(Closure)详细介绍
2014/12/30 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
2015/12/30 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
js获取ip和地区
2017/03/10 Javascript
Bootstrap4如何定制自己的颜色和风格
2018/02/26 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
vue+Element实现搜索关键字高亮功能
2019/05/28 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
python通过ssh-powershell监控windows的方法
2015/06/02 Python
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
Python的装饰器使用详解
2017/06/26 Python
python ftplib模块使用代码实例
2019/12/31 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
python logging模块的使用详解
2020/10/23 Python
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
创建索引时需要注意的事项
2013/05/13 面试题
主管竞聘书范文
2014/03/31 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
青春无悔演讲稿
2014/05/08 职场文书
毕业典礼演讲稿
2014/05/13 职场文书
财务负责人任命书
2014/06/06 职场文书
机械机修工岗位职责
2014/08/03 职场文书
元宵节晚会主持词
2015/07/01 职场文书
pytorch 实现在测试的时候启用dropout
2021/05/27 Python