zoukankan      html  css  js  c++  java
  • 偏函数(partial function)

    如果一个函数带了一些参数,在大部分使用场景中,某个参数的值是固定的,那我们有两种简化办法:

    1. 参数默认值
      即在原始函数定义的地方,对应参数处设置paramx=default。

      但是有一点不好,如果paramx设置了默认值,这个参数之后的其他参数也要跟着设置默认值。

      整体而言,对原有函数有改动。

    2. 偏函数
      使用functools.partial(original_fuc,param1,param....)在原有函数基础上生成一个偏函数。

      所谓偏函数,就是以原函数为基础,将某个位置上的参数固定住(默认是从第一个参数固定),后续参数重新扩展传递给原函数,对外则是生成一个新函数。

      比如:

      def add(a,b):
          return a+b
      

      这是两数相加的函数,现在我们要用一个函数,输入一个参数,返回这个参数+5的结果。

      参数默认值的方法可以这样写:

      def add(a,b=5):
          return a+b
      

      但原函数本来就是两数相加,即使现在可能一个参数+5的场景用的多,给被加数给个默认值5,也是很突兀的写法。

      我们也可以新写一个函数:

      def add5(a):
          return a+5
      

      这样新创建一个函数,倒也没什么,但是对原有add函数复用不高。

      使用偏函数可以这样写:

      import functools
      add5 = functools.partial(add, b=5)
      
      #test add5
      ret = add5(10)
      print(ret)
      

      通过partial中b=5,将参数b的值固定下来。

  • 相关阅读:
    django-day3 Ajax
    django ORM 一对多, 多对多 查询 以及 结合Tamplate
    work-python 脚本 每日发送数据查询
    day16- django
    day15 Jquery
    day 14 JS 练习
    day14 JS-DOM 对象
    day14 JS-BOM
    day14 JS 对象 Function
    day14 js
  • 原文地址:https://www.cnblogs.com/leipei2352/p/15685807.html
Copyright © 2011-2022 走看看