关于例题self.name和s.name的问题求教。
例题中代码:def __cmp__(self,s):
if self.name<s.name:
...
我的问题是,参数s为什么不用定义就是Student类?直接有name这个属性。然后例题中说“__cmp__用实例自身self和传入的实例s进行比较”这句话不是很理解,感觉实例自身self和传入的实例s不是一样的东西吗?求大神路过解答,谢谢~
例题中代码:def __cmp__(self,s):
if self.name<s.name:
...
我的问题是,参数s为什么不用定义就是Student类?直接有name这个属性。然后例题中说“__cmp__用实例自身self和传入的实例s进行比较”这句话不是很理解,感觉实例自身self和传入的实例s不是一样的东西吗?求大神路过解答,谢谢~
2016-11-16
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score
def __str__(self):
return '(%s: %s)' % (self.name, self.score)
__repr__ = __str__
def __cmp__(self, s):
print s.name,self.name
if self.name < s.name:
print -1
return -1
elif self.name > s.name:
print 1
return 1
else:
print 0
return 0
L = [Student('Tim', 99), Student('Bob', 88), Student('Alice', 77)]
print sorted(L)
跑一下这段程序你就理解了
举报