基于微软Ling框架下的函数式编程思想

基于微软Ling框架下的函数式编程思想

核心思想:函数作为参数
假设现在有一个问题:
定义一个函数,可以根据所给条件条件返回学生对象:

#直观的做法:
def get_students01(list_stu):
for item in list_stu:
if item.age > 25:#变化的条件
yield item

提取变化,进行单独封装:
def condition01(item):
return item.age > 25

直接调用变化:

def get_students01(list_stu):
for item in list_stu:
if condition01(item):
yield item
还是很麻烦!!!

用参数func_condition抽象代表各种条件:

def get_students(list_stu,func_condition):
for item in list_stu:
if func_condition(item):
yield item

直接以改变传参来改变条件:
re02 = get_students(studs,condition01)

for item in re02: #用for函数调用__next__()内建函数:
print(item)

以lambda函数来进行传参:
re02 =get_students(studs,lambda item:item.age>25)
for item in re02:
print(item)

可以将所有函数方法放入一个类中,以便日后调用:
class Method:

	def get_students(list_stu,func_condition):
for item in list_stu:                 
    if func_condition(item):          
        yield item   

调用:
re03=Method.get_students(studs,lambda item:item.age>25)
for item in studs:
print(item)

总结:
1.找出变化点
2.将变化的条件单独封装成函数
3.将函数作为参数传给另一个函数
4.善于使用lambda函数代替条件函数功能
5.将经常使用的函数方法单独保存

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值