zoukankan      html  css  js  c++  java
  • 作用域

    """
    作用域
    域指的是区域,范围,作用域指的就是作用区域,作用范围,有效范围
    简单的说就是名字的有效范围
    存储名词的有三个地方
    内置名称空间
    全局名称空间
    局部名称空间
    全局作用域
    由于,内置名称空间的名字与全局名称空间的名字,可以在任何位置来访问,
    所以它们俩可以划到同一个范围,称之为全局范围即全局作用域
    局部作用域
    局部名称空间的名字只能在当前的函数中访问,所以它单独划到一个范围中,
    这个范围称之为局部作用范围即局部作用域


    global(全局) 与 nonlocal(不使用本地) 关键字
    global
    当需要在函数内部修改全局中名字的值时需要使用global
    注意,必须在使用这个名字之前声明(写)global

    nonlocal(不使用本地)
    当需要在内层函数中修改外层函数中的名字是就需要使用nonlocal
    会一层一层往外找,直到找到了为止,但是只能找函数中的不能找到全局的名字

    """
    # def f1():
    #     a =1
    #     def f2():
    #         nonlocal a        #声明我要修改外层a 而不是定义一个新的
    #         a=2
    #         # print(a)
    #     f2()
    #     print(a)
    # f1()

    下面的代码 说明只能一层一层往外找直到找到为止,并且只能找局部变量 ,不会找到全局比那两,如f2中a=2删掉,则会往f1中找。

    a = 0
    def f1():
        a = 1
        def f2():
            a=2
            def f3():
                nonlocal a
                a = 3
            f3()
            print("f2 中的a", a)
        f2()
        print("f1 中的a",a)
    f1()
    print("全局的a",a)


  • 相关阅读:
    centos7下查看端口是否被占用
    centos7通过yum安装redis
    centos7下mysql远程连接
    centos7通过yum安装JDK1.8
    Jwt系列2:使用
    Jwt系列1:简介
    Python基础语法
    排序
    利用MultipartFile来进行文件上传
    服务器端跳转和客户端跳转
  • 原文地址:https://www.cnblogs.com/Hale-wang/p/10267526.html
Copyright © 2011-2022 走看看