python中的函数的分类

函数分类:

    1 不带参函数

    2 带参函数

       默认带参函数

       关键字参数

     可变参数

       字典参数

    3 递归函数

    4 匿名函数

1-1 不带参数函数
     表示该函数不需要传递参数
  def func():
    print("hello world!")
2-1 默认带参函数
   表示该函数自带赋值了的参数,如果不传,则使用该函数的,如果传入新值,则替换函数中的值
    def text(a,b=2)
      print("haha")
      print(a)
      print(b)
    ret = text(1)
    print(ret)
2-2 关键字参数
    表示传递参数的时候不需要分谁先传谁后传,有相对应的关键字形参进行绑定
    def text1(a,b,m):
      print(a)
      print(b)
      print(m)
    ret = text1(m=2,a=1,b=3)
2-3  可变参数
  表示该参数中可以传入任意多个值
    def text2(a,*args):
      print(a)
      print(args)
    ret = text2(1,3,5,8)
2-4 字典参数
  表示传递参数时是以字典数据格式进行传递的
    def text3(a,b,**kwargs):
      print(a)
      print(b)
      print(kwargs)
            
    ret = text3(a =1,b =2,c=5,d=8,f=10)
3 - 1  递归函数
  最大调用深度为1000次(中包含了入口函数)
   满足递归函数的条件
    a.必须有结束条件的标识
    b.自己调用自己
            
            def sum1(num):
                if num == 1:
                  return 1
                return sum1(num-1) + num
       
            ret = sum1(10)
            print(ret)
4-1  匿名函数
        # 方式一
            add = lambda a, b: a + b
            print(add(3, 4))
        # 方式二
           #add = (lambda a,b:a+b) (3,4)
            add = (lambda a, b: a + b)(3, 4)
            print(add)
            # 参数
            # 无参数     
                add = (lambda:100)()
                print(add)

            # 多个返回值需要手动组包
                # f1,f2 = lambda:3,4()  此为lambda未组包的表达式需要手动组包后才能往下进行
                f1, f2 = (lambda: (3, 4))()
                print(f1)
                print(f2)

            # 存储模型
                f4 = (lambda: ())()
                f5 = (lambda: (i for i in range(10)))()
                f6 = (lambda: [i for i in range(10)])()
                f7 = range(10)
                print(f4,f5,f6,f7)
 
原文地址:https://www.cnblogs.com/wangxiongbing/p/10085596.html