也可以说是.net的Linq操作。python版本如果低于3.0不支持lambda,只能单独写函数传参,比较麻烦
先看看函数作为参数有没有问题:
def TestFunc(): print "!!!" def Foo(func): func() def main(): Foo(TestFunc) #print !!!
经过测试打印出了"!!!",看来还是支持的
模拟一下linq的FirstOrDefault:
def FirstOrDefault(collection, func): result = filter(func, collection) if len(result) == 0: return None return result[0] def main(): def condition(m): return m < 3 print FirstOrDefault([1,2,3,4], condition) #print 1
当然返回None并不是默认值,只是测试函数。这里偷懒了
测试打印了1
模拟一下linq的Where:
def Where(collection, func): result = filter(func, collection) if len(result) == 0: return None return result def main(): def condition(m): return m < 3 print Where([1,2,3,4], condition) #print [1,2]
返回筛选后的数组1,2
原文:http://www.cnblogs.com/hont/p/5002913.html