最新回答 / 本质学习者
首先会判断分数是否相等,相等的话就根据name的首字母进行默认的排序,然后继续根据分数进行从高到低排序,cmp默认是按从小到大排序的,但是前面加了-cmp就会倒过来进行从高到低排序,这里的return -cmp(self.score, s.score)不是在分数不相等的情况下才执行的和如下写法是不同的一个是顺序执行一个是多选1执行的<...图片...>
2017-09-17
最新回答 / 宝慕林2404894
你在sorted([p1.name,p2.name,p3.name],...)中[p1.name,p2.name,p3.name]实际是一个列表,对应['Bart','Adam','Lisa'],所以是没有.name这个属性的。如果想要运用你自己的方法,可以将代码改为L2=sorted([p1.name,p2.name,p3.name],lambda p1,p2:cmp(p1,p2))print L2[0]print L2[1]print L2[2]
2017-09-17
最新回答 / 大神宫
import 模块名 是将模块中所有函数导入from 模块名 import 函数名 是将模块中的某个函数导入你导入模块 那么模块中所有函数都能用,但是使用时得加上模块名 比如math.sin(3.14)你导入模块的某个函数 使用时不需要模块名 可以直接 sin(3.14)
2017-09-17
最赞回答 / 大神宫
class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def whoAmI(self): return 'I am a Person, my name is %s' % self.name当你实例化对象时会创建两个属性 name和gender,所以dir(p)有这两个属性,Person是没有的,你可以这样class Pe...
2017-09-17
最新回答 / qq_怕万一错了_0
就好像有些函数是没有参数的,比如: def f(): return 1lambda 参数:返回值 ;这是一个匿名函数,也是函数,所以参数也可以没有
2017-09-14
最赞回答 / Jay_zhang
当程序执行f1,f2,f3 = count()的时候,f1,f2,f3里面并不是[1,4,9],因为fs.append(f),加进去的是函数f(),for循环执行了3遍,也就是加进去了3个函数对象,退出循环,此时i为3,当你打印f1的时候可以看到,里面有3个函数对象,此时我们通过循环遍历f1这个list,for x in f1: #调用f()函数 print x()这时就会看到3个9
2017-09-14