python 09_day

1.函数进阶:

函数动态参数:
动态位置参数  *args
动态关键字参数 **kwargs
位置 > 动态位置参数 > 默认(关键字)参数 > 动态关键字参数

2.命名空间

局部命名空间
全局命名空间
内置命名空间
加载顺序:
内置 > 全局 > 局部
取值顺序:
局部 > 全局  > 内置
作用域:
全局作用域:
内置 + 全局
局部作用域:
函数局部

3.函数的嵌套

    def f():
        print(11)
        def f1():
            print(22)
            def f2():
                print(33)             **********
            f2()

        f1()
    f()

4.global  and  nonlocal

    global
    # print(id(lst))
    # def func():
    #     # a = 15      # 在函数的局部中
    #     # global se     #
    #     lst[0] = 11
    #     # print(a)    # 使用的是局部
    # func()
    # print(lst)
    # print(id(lst))

    # 可变数据类型在函数中可以直接操作,不可变数据类型才需要使用global
    nonlocal
    # a = 10
    # def f():
    #     a = 1 # a = 2
    #     def f1():
    #         # a = 4  # a = 2
    #         def f2():
    #             # nonlocal a
    #             # a = 2
    #             print(a)   # 2
    #         f2()
    #         print(a)       # 2
    #     f1()
    #     print(a)           # 2
    # f()

    # nonlocal 改变最近的父级变量, 如果上级没有能够改变的就继续向上走,直到最外层函数就停止了.

猜你喜欢

转载自www.cnblogs.com/changtao/p/9892483.html