函数

函数

1.动态参数

  1. 三元运算符:return...if...else

    return+成立的结果+if...else+不成立的结果

  2. 动态参数:(万能传参 )

    *args万能的位置参数,可以同时接受多个参数,以元组的形式返回

    *kwargs万能的关键字参数,可以同时接受多个参数,以字典的形式返回

    顺序:位置参数>动态位置参数>关键字参数>动态关键字参数

    # *args 是万能(接受任意多个)的位置参数 *在函数定义的时候叫做聚合
    def func(a,b,*args): 
        print(a,b,args)
    func(1,2,3,4,5,6,7,8,9,0)
    # *args 是万能(接受任意多个)的位置参数 **的时候叫打散(不在定义函数里)
    def func(a,b,*args):
        print(a,b,*args)
    func(1,2,3,4,5,6,7,8,9,0)
    
    # *kwargs  是万能(接受任意多个)关键字参数 *在函数定义的时候叫做聚合
    def func(a,b,c,e,**kwargs):
        print(a,b,c,e,kwargs)
    func(1,2,3,4,k=5,v=6)
    #1 2 3 4 {'k': 5, 'v': 6}
    
    # *kwargs 是万能(接受任意多个)的位置参数 *的时候叫打散(不在定义函数里)
    def func(a,b,c,e,**kwargs):
        print(a,b,c,e,*kwargs)
    func(1,2,3,4,k=5,v=6)
    #1 2 3 4 k v
    
    #万能无敌传参
    unc(*args,**kwargs):
        print(args,kwargs)
    func(1,1,2,2,p=1,i=8)
    #(1, 1, 2, 2) {'p': 1, 'i': 8}
    
    

2.函数的注释

用来解释函数的功能
def bijiao(a,b):
    """
    用于判断两数大小
    :param a: int
    :param b:int
    :return:
    """
    if a>b:
        return a
    else:
        return b
print(bijiao(4,5))

3.名称空间

名称空间:是存放名字和变量之间关系的地方

内置空间:已存在的函数

全局空间:在py文件中,顶头写的就是一个全局空间

局部空间:在函数里的为局部空间

加载顺序:内置空间>全局空间>局部空间

取值顺序:局部空间>全局空间>内置空间

  • 作用域

    全局作用域:内置空间+全局空间

    局部作用域:局部空间

4.函数嵌套

不管在什么位置,只要是函数名+(),就是在调用函数,return后面没有值,并有print时,就返回none,return后面有值,就返回return后的值。没有print就不返回

在嵌套函数中,先执行调用函数上面的print,一级一级的向上执行,然后斜向下至执行

5. global 和 nonlocal

global函数:为了数据的安全性,只能修改全局变量,局部内不能修改全局变量,如果修改许调用global函数

nonlocal函数:修改局部空间的变量值,只修改上一层变量,如果上一层中没有变量就往上找一层,只会找到函数的最外层,不会找到全局进行修改

原文地址:https://www.cnblogs.com/tangjian219/p/11347709.html