知识点四:函数与函数式编程

函数:                                                                                                                                                                                                
                  1.无论何时调用函数,都必须提供函数所有的位置参数
                  2.每个默认参数都会紧跟着一个默认值的赋值语句,如果在函数调用时没有给出值,那么这个赋值就会实现

关键字默认参数(字典): 
                   在我们有不确定数目的或者额外集合的关键字的情况中,参数被放入一个字典中,字典中键为参数名,值为相应参数值;为了区分   关键字参数和非关键字非正式参数,使用了双星号**;
非关键字可变长参数(元组):
                   可变长的参数元组必须在位置和默认参数之后,使用了单星号*,星号操作符后面的形参是一个元组传递给函数,元组保存了所有传递给函数的‘’额外“参数,如果没有给出额外的参数,这个元组即为空。
             
            !!!关键字和非关键字可变长参数都有可能用在一个函数中,只要关键字字典是最后一个参数并且非关键字元组先于它之前出现即可。

函数式编程:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
               允许用lambda关键字来建立匿名函数,匿名是因为不需要以标准的方式来声明,一个完整的lambda语句代表了一个表达式,这个表达式的定义体必须和声明放在同一行。
     例子:  a=lambda x,y=2:x+y
   a(3)=5,a(3,5)=8

偏函数应用:
    将任意数量的参数的函数转化为另一个带剩余参数的函数对象,通过functools模块能够很好被用户调用。由于不用每次调用相应的函数都要输入大量的函数,似的代码变得更加的紧凑和易读。
               1.     from operator import add,mul
                    from functools import partial
                    add1=partial(add,1)
                    mul100=partial(mul,100)
                   ===============add1(1)=2,mul100(10)=110
               2.
__author__ = 'supernew'
#!/usr/bin/env python
from functools import partial
import Tkinter
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('PFAS')
root.mainloop()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值