最赞回答 / 慕丝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
最赞回答 / qq_苏格拉没有底_14
这里你是吧filter的用法没搞清楚。filter return的是要留下的元素所满足的条件,不能用if来表达。就像return男人,就把list中的男人元素留下了,不能写成 if 男人。
2017-07-28
最新回答 / 慕慕9426646
我来说一下我的理解,从代码的6行,fs.append(f),这个f是一个变量名,也就是一个指针,而函数的指针是从函数创建开始就不会变的,当第一次循环,fs.append(1),添加到list里面的数值是1,当第二次,第三次调用的时候,fs.append(f)会将前几次的值全部覆盖,因为添加的是一个指针,这个函数指针又开始访问函数,所以返回的都是9 ,以上仅仅是我个人见解,多多讨论
2017-07-28
最新回答 / 慕哥2587987
因为f()表示运行f这个函数,而在你的代码中f不是一个函数,只是一个普通变量,所以f()自然就不对,而该变量接受了calc_prod([1, 2, 3, 4])的值,所以print f输出的实际上就是calc_prod([1, 2, 3, 4])的运行结果
2017-07-28