课程
/后端开发
/Python
/python进阶
sorted_ignore_case = functools.partial(sorted,key=str.lower)
这句在lower函数后加上括号()就错了,这是为什么呢
2016-06-22
源自:python进阶 2-15
正在回答
key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。
key参数的值应该是一个函数,这个函数接收一个参数并且返回一个用于比较的关键字。
所以只用传入函数的函数名就可以了 所以用str.lower str.lower()是调用了函数
就像装饰器传入函数时 decorator(f) 而不是decorator(f())
昕昕cherish 提问者
key其实是来规范条件的 你可以理解为来按照某种规则来排序 这里key的值应该是跟一个方法的名字 如果使用了str.lower()其实就相当与执行了方法 返回的是一个字符串
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计