最新回答 / 慕粉0017343883
print count()到这一步的返回的结果是一个包含4个函数的数组,数组是不能直接加()运行的。如果按你代码的意思,应该是要分别执行这四个函数,然后打印当时保存的i值平方(闭包)。。。你应该依个读取函数运行。比如:for i in range(0,len(count())): print count()[i]()
2017-08-01
最赞回答 / 慕丝0599876
按照 上面的代码 你跑 print p.key 跑三次,你会发现p.key 永远都等于 18,为什么呢? 因为这里key(self.key) 其实就跟类定义里其他两个name和gender(self.name,self.gender)一个道理,是Person类里的了,你完全可以吧key写成别的,比如self.key2 = value, 说白了,传参数的时候只是传了字典中的‘18’ 这个值,跟age 这个你以为的key的 是没有关系的。 如果你在后面再来个self.key3 = value , ...
2017-07-31
已采纳回答 / 小同不一
以下是我个人的理解:1、这是一个无参的函数 f,函数的过程输出是 'call f()...' ,在f中定义了一个g函数作为返回的对象,返回的是指向g函数的标签引用(通俗讲就是g函数的入口地址作为了返回值)。2、f()就是执行了函数f,返回的是函数g的引用,函数过程中输出‘call f()...’3、x=f() 就是讲f函数的执行结果给x,即 将结果 函数g 的引用(不是g的结果)给x,此时,x是指向g函数的入口,就等于是g4、x()就是g(),所以输出g的执行结果 'call g()...' 。这...
2017-07-31
最赞回答 / 慕码人1183263
sorted函数有四个参数,sorted(iterable, cmp=None, key=None, reverse=False)可以看到其中第一个参数是可迭代对象,后面的参数都是具有默认值的,重点阐述如下:1、cmp,比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回02、key,主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序3、reverse,是否反转,默认...
2017-07-30