在局部修全局的:global

在局部修改嵌套的:nonlocal

nonlocal代码示范
# 在局部作用域内去修改嵌套作用域内的变量
# 当我们在局部作用域内要修改嵌套作用域内的变量时,需要使用nonlocal去声明

def fun01():
  name = "张子恒"

  def fun02():
  # 在这里不仅仅去访问name变量
  # 修改name变量
    nonlocal name
    name = "张子恒zzh"
    print(name)

   fun02()

  print("---->",name)

fun01()

案例演示

name = "北京烤鸭"

address = ["东直门", "西直门", "朝阳区"]

def fun01():

  global name # name为不可变数据类型,需要使用global 修改

  name = "全局德烤鸭"

  address.append("国贸") # 列表为可变数据类型所以直接改就行

  address.append("西单")

  price = 20

  def fun02():

    nonlocal price # 嵌套函数的值为不可变数据类型时使用,修改

    price = 230

  fun02()

  print("修改后的价格为:", price)

  fun01()

print(name)

print(address)

global和nonlocal之间的区别的更多相关文章

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

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xCyansun/article/details/79672634终于下定决心学习Python了.既然 ...

  2. python 作用域,global与nonlocal的区别

    在Python中并不是所有的语句块中都会产生作用域.只有当变量在Module(模块).Class(类).def(函数)中定义的时候,才会有作用域的概念. 如果在函数中要对全局变量做改变可以使用glob ...

  3. 转载 Python中关键字global与nonlocal的区别

    转载自CSDN 雁丘1990, 原文地址: https://blog.csdn.net/xcyansun/article/details/79672634 这篇文章写的很赞, 条理清晰, 分析循序渐进 ...

  4. 【转载】python3.0与2.x之间的区别

    python3.0与2.x之间的区别: 1.性能 Py3.0运行pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好 ...

  5. python3.0与2.x之间的区别

    python3.0与2.x之间的区别: 1.性能 Py3.0运行pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好 ...

  6. oracle 的 startup,startup mount,startup nomount之间的区别

    startup,startup mount,startup nomount之间的区别   startup nomount选项:(读初始化参数文件,启动实例) startup nomount选项启动实例 ...

  7. Python--day13(函数嵌套定义,global、nonlocal、闭包函数、装饰器)

    今日主要内容 1.  函数的嵌套定义 2.  global.nonlocal关键字 3.  闭包及闭包的应用场景 4. 装饰器 1.  函数的嵌套定义 概念:在一个函数的内部定义另一个函数 为什么要有 ...

  8. MySQL、MongoDB、Redis 数据库之间的区别与使用(本章迭代更新)

    MySQL.MongoDB.Redis 数据库之间的区别与使用 MySQL.MongoDB.Redis 数据库之间的区别与使用(本章迭代更新) update:2019年2月20日 15:21:19(本 ...

  9. 函数补充:动态参数,函数嵌套,global与nonlocal关键

    一丶动态参数 1.*args 位置参数,动态传参 def func(*food): print(food) print(func("米饭","馒头"," ...

随机推荐

  1. node.js报错:Cannot find module 'xxx'的解决办法

    从别处拷贝一份node.js项目,如图 控制台启动 nodemon index.js 后报错:Cannot find module xxx.删除node_modules,在启动时仍提示Cannot f ...

  2. ABBYY FineReader 与资源管理器的集成使用

    ABBYY FineReader 15(Windows系统)与 Windows 资源管理器的集成使用后,在不打开软件的情况下,可通过右击启动快捷菜单开启. 通过与Windows资源管理器的集成,用户可 ...

  3. css3系列之详解box-shadow

    box-shadow box-shadow呢 是设置元素的阴影效果的,利用这个属性,可以设计很多很炫丽的效果,不信? 等下,学完,我们就来完成下面这两个效果 首先 先了解一下,box-shadow 的 ...

  4. nginx学习首页随机模块

    在default.conf下加入这行开启随机模块,在root目录下放入几种不同的html 改完保存下,使用命令检查nginx语法是否正确 nginx -tc /etc/nginx/nginx.conf ...

  5. js实现长按显示全部内容

    js实现文字超出省略号显示时长按显示全部 元素内容超出省略号显示时长按该元素,生成toast弹窗(id:toolkitContainer),以显示全部内容 #toolkitContainer { ma ...

  6. 企业安全06-Fastjson-CNVD-2017-02833

    Fastjson-CNVD-2017-02833 一.漏洞概述 fastjson在解析json的过程中,支持使用@type字段来指定反序列化的类型,并调用该类的set/get方法来访问属性,当组件开启 ...

  7. js中定时器调用函数时为什么会有引号

    之前在学习的时候并没有发现的细节,关于js中,定时器的问题 这里我们写两个延时器 setTimeout(func, 0); setTimeout("func()", 0);定时器中 ...

  8. SQL优化之SQL 进阶技巧(上)

    由于工作需要,最近做了很多 BI 取数的工作,需要用到一些比较高级的 SQL 技巧,总结了一下工作中用到的一些比较骚的进阶技巧,特此记录一下,以方便自己查阅,主要目录如下: SQL 的书写规范 SQL ...

  9. MongoEngine模块

    今儿,接到老的的要求,要把新功能的数据存放在Mongo里.虽然一直都有听过Mango的鼎鼎大名,但是那也只是见过没用过,跟个小白没啥区别.在加上功能急需,没办法只能赶鸭子上架先上再说.下面这篇就是我赶 ...

  10. 问题: 刚安装的PyCharm执行代码报“ModuleNotFoundError: No module named XXXX”错

    老猿刚安装好PyCharm后,直接新建了一个工程文件并导入了一个已有的爬虫程序文件,该文件原来在Python解释器下能执行,但在PyCharm下执行时报错: F:\学习\python\SRC\proj ...