zoukankan      html  css  js  c++  java
  • python偏函数的运用

    摘要:python的设计核心原则就是简洁——在这种原则的指导下,诞生了lambda表达式和偏函数:二者都让函数调用变得简洁。本文主要为你介绍偏函数的应用。

    1.为什么要使用偏函数

    如果我们定义了一个函数,比如说将四个数相加add(one ,two,three,four),上层有很多函数需要调用这个函数。在这些调用中,80%的调用传递的参数都是one=1,two=20,如果我们每都输入相同的参数,这样乏味而且浪费,固然,我们可以通过默认参数来解决这个问题;但是如果另外我们也需要参数是one=2,two=10的情况呢?所以,我们需要一种函数,能够将任意数量的参数的函数转化成带剩余参数的函数对象。


    2.什么是偏函数

    通过上面,我们大概明白了什么是偏函数:简单的说,偏函数就是某一种函数带有固定参数的实现,所以,我们需要:1)给偏函数命名 2)传递固定参数

    看下面这个例子:

    from operator import add,mul
    from functools import partial
    add1=partial(add,1)
    add(2,4)        #6
    add(1,2)        #3
    

    3.如何使用偏函数

            可能你还没有感受到偏函数的巨大威力,这里举出一个常见的应用场景。在GUI程序中,一个控件往往有很多参数:大小、长度、最大尺寸、前景色、背景色等;而我们大量用到同种控件,此时,偏函数就非常有用了。下面给出一个GUI应用的例子和结果:

    root=Tkinter.Tk()
    mybutton=partial(Tkinter.Button,root,fg='white',bg='blue')
    b1=mybutton(text='Button1')
    b2=mybutton(text='Button2')
    qb=mybutton(text='QUIT',bg='red',command=root.quit)
    b1.pack()
    b2.pack()
    qb.pack(fill=Tkinter.X,expand=True)
    root.title('PAF!')
    root.mainloop()
    

     

  • 相关阅读:
    python模块之cx_Oracle
    python模块之xml.etree.ElementTree
    CentOS7.4 安装 oracle12c
    Markdown语法整理
    ansible command模块将返回值写入变量
    pip安装模块时:error: command 'gcc' failed with exit status 1
    The hub and spoke model 轮辐模型/辐射模型
    ActiveMQ-Network of brokers集群模式
    ansible安装配置及最佳实践roles
    ansible报错Aborting, target uses selinux but python bindings (libselinux-python) aren't installed
  • 原文地址:https://www.cnblogs.com/hester/p/10380910.html
Copyright © 2011-2022 走看看