码迷,mamicode.com
首页 > 其他好文 > 详细

global和nonlocal之间的区别

时间:2020-12-19 13:16:19      阅读:2      评论:0      收藏:0      [点我收藏+]

标签:嵌套   print   name   函数   cal   朝阳区   ddr   price   演示   

在局部修全局的: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之间的区别

标签:嵌套   print   name   函数   cal   朝阳区   ddr   price   演示   

原文地址:https://www.cnblogs.com/ziheng8/p/14136756.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!