美文网首页
参数与匿名函数

参数与匿名函数

作者: 往你头上敲三下 | 来源:发表于2018-05-17 15:23 被阅读0次

    必需参数、关键字参数、默认参数、不定长参数

    必需参数、关键字参数为常用函数不做多说。

    1.默认函数

    调用函数时,如果没有传递参数,则会使用默认参数。实例中如果没有传入 age 参数,则使用默认值。

    def printinfo(name,age=20):

        print('name:',name)

        print('age:',age)

        return

    printinfo(name ='zhangsan')

    printinfo(age= 18, name = 'lisi')

    运行结果如下图:

    2.不定长参数

    可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述声明参数不同,声明时不会命名。

    语法如下:

    def functionname([formal_args,] *var_args_tuple ): "函数_文档字符串" function_suite

      return [expression]

    加了星号(*)的变量名会存放所有未命名的变量参数。如果在函数调用时没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量。

    def printinfo(arg1,*vartuple):

        print(arg1)

        for x in vartuple:

            print(x)

        return

    printinfo(10,20)

    print('--------------')

    printinfo(10,20,30,40)

    运行结果如下:

    匿名函数

    python 使用 lambda 来创建匿名函数。

    所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。

    lambda 只是一个表达式,函数体比 def 简单很多。

    lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

    lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。

    虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

    基本语法:lambda [arg1 [,arg2,.....argn]]:expression

    sum = lambda arg1, arg2, arg3:arg1+arg2+arg3

    print('相加后的值为:',sum(10,20,30))

    print('相加后的值为:',sum(20,30,40))

    运行结果如下

    相关文章

      网友评论

          本文标题:参数与匿名函数

          本文链接:https://www.haomeiwen.com/subject/xqbbdftx.html