python关键字global和nonlocal总结】的更多相关文章

函数中使用全局变量 a = 100 b = 200 def func(): def sub(): return b return a + b + sub() 执行fun()后返回值为:500 a, b使用的是全局变量的值. 函数中覆盖全局变量 a = 100 b = 200 def func(): a = 10 b = 20 def sub(): return b return a + b + sub() 执行fun()后返回值为:50 a, b使用的是局部变量的值. 函数中修改改全局变量 a…
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xCyansun/article/details/79672634终于下定决心学习Python了.既然从头开始,就需要认认真真. 首先需要说的是,我是初学Python,这篇文章只是用于展示global和nonlocal关键字的区别,是很简单的知识点,如果你已经学过,可以绕道.因为不经常写博客,而且是个Python小白,所以内容有些啰嗦... 注意:我使用的是Python3.6.3,可能和Python…
转载自CSDN 雁丘1990, 原文地址: https://blog.csdn.net/xcyansun/article/details/79672634 这篇文章写的很赞, 条理清晰, 分析循序渐进, 感谢原作者! 结论: 第一,两者的功能不同.global关键字修饰变量后标识该变量是全局变量,对该变量进行修改就是修改全局变量,而nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量,如果上一级函数中不存在该局部变量,nonlocal位置会发生错误(最上层的函数使用nonlocal…
python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 . 一 global global关键字用来在函数或其他局部作用域中使用全局变量.但是如果不修改全局变量也可以不使用global关键字. gcount = 0 def global_test(): gcount+=1 print (gcount) global_test() D:\Python34\python.exe E:/PycharmProjects/Day3/glo…
一.global 1.global关键字用来在函数或其他局部作用域中使用全局变量.但是如果不修改全局变量也可以不使用global关键字.   gcount = 0 def global_test(): gcount+=1 print (gcount) global_test()   以上代码会报错:第一行定义了全局变量,在内部函数中又对外部函数进行了引用并修改,那么python会认为它是一个局部变量,有因为内部函数没有对其gcount进行定义和赋值,所以报错. 2.如果局部要对全局变量修改,则在…
1.global关键字用来在函数或其他局部作用域中使用全局变量.但是如果不修改全局变量也可以不使用global关键字. gcount = 0 def global_test(): gcount+=1 print (gcount) global_test() 以上代码会报错:第一行定义了全局变量,在内部函数中又对外部函数进行了引用并修改,那么python会认为它是一个局部变量,有因为内部函数没有对其gcount进行定义和赋值,所以报错. 2.如果局部要对全局变量修改,则在局部声明该全局变量 gco…
知识点: global将一个变量变为全局变量 nonlocal改变最近的变量,又不是全局作用. 1.global 在python中,当引用一个变量的时候,对这个变量的搜索按找本地作用域(Local).嵌套作用域(Encolosing function locals).全局作用域(Global).内置作用域(builtins模块)的顺序来进行的,即所谓的LEGB规则. m = 1 #全局 def fun1(): m = 2 #嵌套 def fun2(): m = 3 #本地 fun2() fun1…
1.在学习python过程中很重要的一点需要记住:如果在函数内部定义了跟全局变量同名的变量,那么该变量将是局部变量,而全局变量的引用在该函数范围内将失效. x = 9 def a(): x = 10 print x #x在此处是局部变量. a() #10, x =9 def b(): x +=1 print x #x在此处是局部变量,全局变量的引用失效,所以会报变量在使用前没有赋值的错误. b() #UnboundLocalError: local variable 'x' referenced…
globale 表示从全局把一个变量(比如a)引入局部,后面的变量全是此变量a 使用   globale 变量名 # 全局变量一般是不能随意的修改的 # a = 10 # def func(): # # 慎用. # global a # global 表示从全局把一个变量引入到局部, 后面使用的a都是全局变量 # a += 10 # a = a + 10 # 现在的a是全局的, 你现在视图改全局变量 # print("里面的打印",a) #20 # func() # print(&qu…
一丶动态参数 1.*args 位置参数,动态传参 def func(*food): print(food) print(func("米饭","馒头","福建人","犹太人")) 将所有的位置参数都赋给*food 2.**kwargs 关键字参数,动态传参 # 关键字的动态传参 def eat(**food): print(food) print(eat(广东人= "福建人",goodeat = "…