加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python16返回函数、装饰器、偏函数

发布时间:2020-12-20 10:51:30 所属栏目:Python 来源:网络整理
导读:# 函数式编程下 函数作为返回值:高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。 实例: ``` def return_sum_args(*args): def sum_args(): sum = 0 for i in args: sum += i return sum return sum_args # 调用函数return_sum_args a =

# 函数式编程下

  • 函数作为返回值:高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。
    • 实例:
      ```
      def return_sum_args(*args):
      def sum_args():
      sum = 0
      for i in args:
      sum += i
      return sum
      return sum_args

      # 调用函数return_sum_args
      a = return_sum_args(1,2,3,4,5,6) # 返回的是函数 sum
      print(type(a))
      print(a()) # 等同于调用sum函数
      ```
    • 运行结果:

    • 注意:每次调用都会返回一个新的函数,即使传入相同的参数:结果也不受影响
  • 闭包:注意到返回的函数在其定义内部引用了局部变量args,所以,当一个函数返回了一个函数后,其内部的局部变量还被新函数引用,所以,闭包用起来简单,实现起来可不容易。返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量。
  • 匿名函数:关键字 lambda
    • 语法: lambda 参数:返回值 == lambda x : x * x
    • 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。
    • 匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:
    • sum_func = lambda x,y : x + y
    • 调用:print(sum_func(1,2))
  • 装饰器:在代码运行期间动态增加功能的方式
    • 由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。
    • __name__属性:函数名.__name__ 返回函数名字
    • 实例:
      # __name__,获取函数名称 def demo(): return ‘2019.8.27‘ f = demo print(demo.__name__) print(f.__name__)
  • 偏函数:简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单
    • 实例:
      import functools.partial int2 = functools.partial(int,base=2) # 返回二进制的数据 print(int2(‘1111‘)) # 注意到上面的新的int2函数,仅仅是把base参数重新设定默认值为2,但也可以在函数调用时传入其他值:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读