zoukankan      html  css  js  c++  java
  • 从入门到自闭之Python名称空间

    名称空间:

    1. 内置空间:python解释器自带的一块空间

    2. 全局空间:py文件中顶格写的就是全局空间

    3. 局部空间:函数体中就是局部空间

    4. 加载顺序:

      1. 内置空间

      2. 全局空间

      3. 局部空间

                # def func():
                #     a = 1
                #     print(a)
                # func()
        
    5. 取值顺序:

      1. 局部空间

      2. 全局空间

      3. 内置空间

        a = 10
        def func()
        	print(a)
        func()
        
    6. 作用域:

      1. 全局作用域:全局+内置
      2. 局部作用域:局部

    函数的嵌套

    ​ 不管在什么位置,只要是函数名()就是在调用一个函数。

    # 混合嵌套:
    # def f1():
    #     print(11)
    #
    # def f2():
    #     print(22)
    #     f1()
    #
    # def f3():
    #     print(33)
    #     f1()
    #
    # def run():
    #     f3()
    #     f2()
    #     f1()
    # run()
    

    例2:
    # def func(a):
    #     print(a)
    #     return f1(foo(a))
    #
    # def foo(b):
    #     print(b)
    #     return b + 5
    #
    # def f1(args):
    #     return args + 10
    #
    # print(func(5))
    输出结果:5,5,20
    
    # def foo(a):
    #     a = 10
    #     def f1(b):
    #         c = b
    #         def foo(c):
    #             print(c)
    #             print(foo.__doc__)
    #         foo(c)
    #         print(b)
    #     f1(a)
    #     print(a)
    # foo(25)
    输出结果:10,10,10
    

    修改全局:

    global,只修改全局

    nonlocal:修改局部,修改离他最近的一层,上一层没有继续向上层查找,只限局部

    # a = 10
    # def func():
    #     global a
    #     a = a - 6
    #     print(a)
    # fun ()
    
    # a = 100
    # def func():
    #     b = 10
    #     def foo():
    #         b = a
    #         def f1():
    #             nonlocal b
    #             b = b + 5
    #             print(b)  # 105
    #         f1()
    #         print(b)  # 105
    #     foo()
    #     print(b) # 10
    # func()
    # print(a) # 100
    

  • 相关阅读:
    2016第5周四
    2016第5周三
    2016第5周二
    HTTP2.0那些事
    2016第4周日
    【C语言的日常实践(十二)】命令行参数
    Oracle改变字段类型
    Codeforces Round #269 (Div. 2)
    linux shell 命令
    Codeforces Round #256 (Div. 2) C. Painting Fence 或搜索DP
  • 原文地址:https://www.cnblogs.com/heyulong1214/p/11528269.html
Copyright © 2011-2022 走看看