-
reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,
查看全部 -
装饰器作用:可以极大地简化代码,避免每个函数编写重复性代码
如:打印日志:@log
检查性能:@performance
数据库事务:@transaction
URL路由:@post('/register')
查看全部 -
像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)查看全部
-
函数f为判断函数,依次对list的每一个元素进行判断
查看全部 -
map函数把函数f作用在list的每一个元素上
查看全部 -
能接受函数作为参数的函数就是高阶函数
查看全部 -
函数式编程的特点:
把计算视为函数而非指令
纯函数式编程:不需要变量,没有副作用,测试简单
支持高阶函数,代码简洁
查看全部 -
使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写 f = decorate(f) 这样的代码。
查看全部 -
要让 @log 自适应任何参数定义的函数,可以利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用:
def log(f): def fn(*args, **kw): print 'call ' + f.__name__ + '()...' return f(*args, **kw) return fn
查看全部 -
匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
查看全部 -
Lambda函数也叫做匿名函数,就是说没有具体名称的函数。Lambda函数可以使用任何数量的参数,但只能有一个表达式。
Lambda和def
1)def创建的方法是有名称的,而lambda没有。
2)lambda会返回一个函数对象,但这个对象不会赋给一个标识符,而def则会把函数对象赋值给一个变量(函数名)。
3)lambda只是一个表达式,而def则是一个语句。
4)lambda表达式” : “后面,只能有一个表达式,def则可以有多个。
5)print等语句不能用于lambda中,def可以。
6)lambda一般用来定义简单的函数,而def可以定义复杂的函数。
6)lambda函数不能共享给别的程序调用,def可以。查看全部 -
调用子类的方法,如果子类中存在该方法则会先调用子类的方法,若子类中没有此方法,再到父类中查找
查看全部 -
if self.score==s.score://如果分数相同,执行下面代码
return cmp(self.name,s.name)//分数相等比较名字,进行排序
return -cmp(self.score,s.score)//前面添加负号,用来锁定分数始终是从高排到低,
查看全部 -
传入**kw 即可传入任意数量的参数,并通过 setattr() 绑定属性.
def __init__(self, name, gender, **kw):
self.name = name
self.gender = gender
for k ,v in kw.iteritems():
setattr(self, k, v)
**kw这里其实关注的是**这两个代表着关键字参数,kw是可以我们自己命名的,一个*表示的是可变参数,可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple,而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict for k, v in kw.iteritems(): 这里的作用是循环,赋值,因为KW是两个**的,所以在P那一列赋值的时候必须使用age=18,这样的格式age就相当于name,18就相当于'Male',然后系统会检查这个赋值后,后面还有没有,有的话继续赋值,但是都必须符合那个规格来。 setattr(self, k, v) 这里的作用是在实列__init__中添加一个age,在给它赋值18.
查看全部 -
s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。
查看全部
举报