global或者nonlocal改变函数内变量的作用域
  9E3vfgILUe1a 2023年11月13日 19 0
#用global改变函数内变量的作用域,使之变为全局变量
a=3
def g():
    global a
    a+=17
    return a
print(g())
#提示:需要该函数重新赋值时用return,不需要时则不用return
#用nonlocal改变函数内变量的作用域,使之变为全局变量
def f():
    a=3
    def g():
        nonlocal a
        a+=17
    g()
    print(a+20)
f()
    #提示:需要该函数重新赋值时用return,不需要时则不用return

区别:

函数套函数用nonlocal,函数无嵌套函数则用global。


理解:

假设:有一空间(一类)中包含有编程里的所有东西,令为x1空间。其中函数令为x2空间,而函数里的函数令为x3空间,

则使用规则为:当x2空间要用到x1空间当中的变量值时则使用global,当x3空间要使用x2当中的变量值时使用nonlocal。

综合来讲,global是全局变量,nonlocal是父函数的变量。


技巧:

1、尽量不要用相同变量名。

2、函数嵌套时不能同时用global,nonlocal两个函数。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  xfEU0RRJpeyr   2023年11月02日   65   0   0 初始化数组赋值
  rb2XW0fjLLT8   2023年11月02日   58   0   0 数组赋值野指针
9E3vfgILUe1a