任务题中,cmp()本身不是python中内置的一个函数吗?为什么还要用用匿名函数定义?
答案中的代码:
functools.partial(sorted,cmp=lambda s1,s2: cmp(s1.upper(),s2.upper()))
不大明白的是为什么要写成cmp=...这样子,cmp本身就是一个内置函数,为何要再次定义呢?求大神解答,感激不尽~
答案中的代码:
functools.partial(sorted,cmp=lambda s1,s2: cmp(s1.upper(),s2.upper()))
不大明白的是为什么要写成cmp=...这样子,cmp本身就是一个内置函数,为何要再次定义呢?求大神解答,感激不尽~
2016-10-22
sorted,cmp=lambda s1,s2: cmp(s1.upper(),s2.upper()) #官方给出的functools.partial的用法为:functools.partial(模板,默认参数), #你可以看为,functools.partial(你要做什么的函数,你要设置好的默认参数) #这里就是要做sorted(内置了的函数),后面的cmp=lambda s1,s2: cmp(s1.upper(),s2.upper(),就是你设置的默认参数 #而cmp = lambda,相当于把cmp这个比较函数重新定义了一次,使用匿名函数,只是为了简化代码 #可以回头看看,第10小节有提到:返回函数的时候,也可以返回匿名函数
举报