【发布时间】:2018-06-19 04:26:36
【问题描述】:
以下代码块给出 ['AAB', 'BBC', 'EFM', 'CNN', 'ESPN', 'ITN', 'XYZ'] 作为输出。但是 sort() 方法中的 MyCmp() 函数没有任何参数。如果我创建了一个只接受一个参数的函数并在 sort() 方法中调用它,它会给出一条错误消息,告诉“TypeError: MyCmp() 只需要 1 个参数(给定 2 个)"
有人能解释一下原因吗?为什么 MyCmp() 函数不需要像普通函数调用那样被赋予任何参数?
A = ['ESPN','BBC','AAB','XYZ','CNN','ITN','EFM']
def MyCmp(a,b):
return cmp(a[1],b[1])
A.sort(MyCmp)
print A
当我在函数中添加 print a,b 行时。它输出
BBC ESPN
AAB BBC
XYZ AAB
XYZ BBC
XYZ ESPN
CNN ESPN
CNN BBC
ITN CNN
ITN XYZ
ITN ESPN
EFM ESPN
EFM BBC
EFM CNN
【问题讨论】:
标签: python-2.7 function parameters function-calls cmp