函数进阶

动态位置参数以及动态关键字参数:

复制代码
位置  关键字 动态位置  动态关键字
def func(a,*args,b,**kwargs): print(a,b,args,kwargs) func(1,2,3,4,bb=1,cc=3,)
复制代码

 函数:

复制代码
        动态:

            动态位置参数  *args

            动态关键字参数 **kwargs

        位置 > 动态位置参数 > 默认(关键字)参数 > 动态关键字参数
复制代码

函数的嵌套:

复制代码
def f():
#     a = 10
#     print(a)
#     def f1():
#         b = 20
#         print(b)
#     f1()
# f()
复制代码

局部空间:

复制代码
def func():  # 函数里的是局部空间
#     b = 5
#     print(b)

#print()     #内置的就是python本身自带的东西
# input()     #内置python本身自带的东西

print(locals())  # 查看局部作用域中的变量和内容
print(globals())   # 查看全局作用域中的变量和内容
复制代码

名称空间:

复制代码
2. 名称空间:

    局部命名空间
    全局命名空间
    内置命名空间


    加载顺序:

        内置 > 全局 > 局部

    取值顺序:

        局部 > 全局  > 内置

    作用域:

        全局作用域:

            内置 + 全局

        局部作用域:

            函数局部
复制代码

global与nonlocal:

复制代码
global:
可变数据类型在函数中可以直接操作,不可变数据类型才需要使用global
nonlocal:
nonlocal 改变最近的父级变量, 如果上级没有能够改变的就继续向上走,直到最外层函数就停止了.

函数: 将一个需求封装后调用,优点:除去重复代码.
原文地址:https://www.cnblogs.com/hard-up/p/10054345.html