【发布时间】:2018-03-06 17:59:06
【问题描述】:
这似乎是一个语法错误。
这是正确的调用函数。
t.sort(key=lambda b: b.length // 2)
这里是函数
def sort(self, key=None):
p=self.boxes
p.sort(key)
return
p 是类中的列表。我不确定如何正确排序。
【问题讨论】:
-
你认为错误信息是什么意思?
这似乎是一个语法错误。
这是正确的调用函数。
t.sort(key=lambda b: b.length // 2)
这里是函数
def sort(self, key=None):
p=self.boxes
p.sort(key)
return
p 是类中的列表。我不确定如何正确排序。
【问题讨论】:
正如错误所说,您应该使用关键字参数传递key:
def sort(self, key=None):
self.boxes.sort(key=key)
(注意p和return是不必要的)
【讨论】:
key 仅用于 kw 以防止与 cmp 意外混淆 - 一个为 Python 3 删除的旧参数。参见例如this answer。这说明了 kw-only args 的主要好处 - 它们强制调用者明确说明他们要传递的 arg,这有助于提高可读性和前向兼容性。