gloabal 将变量提升为全局变量

在函数内部修改全局的变量,如果全局中不存在就创建一个变量

a = 100
def func():# global a   a = 28print(a)
func()
print(a)

不加gloabal时:

加gloabal时:

a = 100
def func():global a    # 加了个global表示不再局部创建这个变量了. 而是直接使用全局的aa = 28print(a)
func()
print(a)


就将28提升为全局变量了。

nonlocal将变量提升到上一层

nonlocal 只修改上一层变量,如果上一层中没有变量就往上找一层,只会找到函数的最外层,不会找到全局进行修改

a = 10
def func1():a = 20def func2():# nonlocal a # 先注释掉a = 30print(a)func2()print(a)
func1()


结果为30 20,因为在 func1 中是30,在func2 中是20。

= 10
def func1():a = 20def func2():nonlocal aa = 30print(a)func2()print(a)
func1()


可以看出吧 func2 的变量提升到了 func1 这一层,但是没有到达全局变量。

python中的 gloabal和nonlocal的区别相关推荐

  1. Python中关键字global与nonlocal的区别

    终于下定决心学习Python了.既然从头开始,就需要认认真真. 首先需要说的是,我是初学Python,这篇文章只是用于展示global和nonlocal关键字的区别,是很简单的知识点,如果你已经学过, ...

  2. Python中爬虫框架或模块的区别

    Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...

  3. Python中值传递和引用传递区别

    原文:http://blog.csdn.net/xuqiaobo/article/details/72236539 举例,函数参数如果是dic,都不需要返回值,原值就被改变了 def aa(dic): ...

  4. Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...

    Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...

  5. python中列表 元组 字典 集合的区别

    参考文章:python中列表 元组 字典 集合的区别

  6. Python中爬虫框架或模块的区别!

    Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...

  7. 【Python】Python中str()和repr()函数的区别

    作用 在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str() 或者 repr() . 区别与使用 参考文章:Python 中 str() 和 repr() 函数的 ...

  8. python中的return和print的区别_python中return和print的区别(详细)

    Huskiesir python最近正在研究.今天,我面临一个问题,那就是,返回和印刷的区别.双方都能输出结果.的区别是什么?闲话少说,看下面的例子.# Code1: def break_words( ...

  9. python中dtype什么意思_浅谈python 中的 type(), dtype(), astype()的区别

    如下所示: 函数 说明 type() 返回数据结构类型(list.dict.numpy.ndarray 等) dtype() 返回数据元素的数据类型(int.float等) 备注:1)由于 list. ...

最新文章

  1. I need to follow my heart.
  2. C#位运算实际作用之操作整型某一位
  3. 如何探测浏览器是否开启js功能
  4. python题库刷题训练软件_刷题 -- python计算器练习题
  5. P2014-选课【树形dp,背包】
  6. 正交试验设计例题及答案_正交表测试用例设计方法的特点是什么?
  7. 计算电磁学及其在复杂电磁环境数值模拟中的应用和发展趋势
  8. 这款IDEA插件刷爆了技术群,群友:这用起来真酸爽~
  9. 纸鸢|物联网云平台小工具集合常见 MQTT 客户端比较
  10. 短视频源码开发,短视频系统源码搭建,从短视频系统起播过程入手
  11. 一篇关于蜿蜒型河流的介绍
  12. Android学习之——APP番茄工作法——小结(2)
  13. 动手实践,使用div盒子模型设计一个播放器效果/动手实践
  14. Zabbix 如何实现邮件报警通知以及免费短信报警通知
  15. 基于Java后台(Springboot框架)+前端小程序(MINA框架)+Mysql数据库的教室图书馆座位预约小程序系统设计与实现
  16. 7大子论坛回顾 | PGConf.Asia亚洲技术大会DAY2精彩继续
  17. pandas笔记1 --pandas处理mat表格文件
  18. 基于Python爬虫的股票成交量数据抓取分析系统
  19. 【多校训练】2021HDU多校4
  20. ios 绘制线框_16款值得一用的iPhone线框图模板 (PSD Sketch)

热门文章

  1. c语言难还是java难_C语言真的比Java难学吗?
  2. 机器学习-第三方库(工具包):scikit-learn【用于特征工程(主要分为三部分:数据预处理、特征选择、降维)】【Sklearn模块中包含常用的算法】
  3. python爬取bilibili视频
  4. HTML和CSS做渐变背景和3D卡片
  5. 动态倒计时(仿vantUI倒计时)
  6. CAD新手制图,如何移动图形呢?
  7. 本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。
  8. 牛客网-运维工程师能力评估(部分选题)
  9. 数据库建立索引以及索引失效问题
  10. HTML中常用的特殊字符