为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Student类下面的的__cmp__能作用到外部的列表L中?

不明白为什么L中的排序可以用到Student类中定义的__cmp__?

正在回答

2 回答

我的理解:sorted()函数也属于特殊方法,它在调用对象时,实际上是调用对象的__cmp__方法,就和print s 实际上调用的是print s.__str__一样

0 回复 有任何疑惑可以回复我~

我的理解是,在程序中调用sorted()函数只能比较int、str等内置数据类型。

如果a,b,c都是Student类的实例,在调用sorted(a, b, c)时,由于a,b,c是Student类型的数据,不属于内置类型,因此靠sorted()中的默认cmp函数是无法完成元素之间的比较的。

因此,这里要提供给sorted()函数的cmp函数需要在Student类中提供。这相当于告诉sorted()函数,Student数据类型的变量之间应该是怎样比较大小的。

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

为什么Student类下面的的__cmp__能作用到外部的列表L中?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信