• 函数作用域理解


    函数中的作用域搜索顺序:L---E---G---B

    L-----local,局部名字空间,即局部变量,在函数内部找

    E-----enclosing,直接外围空间,

    G-----global,全局名字空间,即全局变量

    B-----builtin,内建名字空间

    1 x = 10
    2 def f():
    3     x +=  2
    4     print(x)    #结果报错,由于函数内x被赋值,则认为是局部变量,在函数内寻找,
    5 f()             #找到结果是x还没被定义,报错
    1 x = 10
    2 def f():
    3     global x   #定义x为全局变量
    4     x +=  2     #则x会往外部找,找到10,所以执行结果12
    5     print(x)
    6 f()    
     1 x = 9
     2 def bb():
     3     global x        #定义全局变量
     4     print(x,1)      #执行结果9
     5     x = 8
     6     def cc():
     7         global x  #定义全局变量
     8         x += 1    #赋值了认为是内部变量,在内部查找,找到x被定义全局变量,到外面拿到9
     9         print(x,2)  #执行结果9
    10     cc()
    11 bb()
    12 ##########################
    13 x = 9
    14 def bb():
    15     global x
    16     print(x,3)   #执行结果9
    17     x = 8
    18     def cc():
    19         global x     #这个定义可有可无
    20         print(x,4)   #执行结果8,没赋值则直接向外找
    21     cc()
    22 bb()
  • 相关阅读:
    第一次个人编程作业
    软件工程博客作业1
    第一周作业
    预备作业
    没有权限访问路径
    Linux命令:pwd
    Linux命令:readonly
    Linux命令:read
    Bash:精华
    Linux命令:history
  • 原文地址:https://www.cnblogs.com/repo/p/5410809.html
Copyright © 2020-2023  润新知