最赞回答 / a412739861
不是,Fib(n)中的n其实匹配的是for n in range(num)中的num,进行了num次迭代。循环是为了构成n个斐波那契数列,你把for n in的n换成x也是可以的。
2015-04-05
最新回答 / DanDanHang
是的,注意底下加粗的部分Help on built-in function reduce in module __builtin__:reduce(...) reduce(function, sequence[, initial]) -> value Apply a function of two arguments cumulatively to the items of a sequence, from left to right, so as to reduce the se...
2015-04-05
最赞回答 / lhclylzl
当含有其他类是,可以判断其他类的类型。例如有数字和字符串,数字和分数比较,字符串和名字比较 def __cmp__(self, s): if isinstance(s,Student): if self.score<s.score: return -1 elif self.score>s.score: return 1 else: ...
2015-04-05
最赞回答 / lc云泽
'self.__score'中的'__score'是你自己定的属性名,想写啥都行,有双下划綫只表示不能外部访问,你可以写成'self.__a',一样的。但是后面'=__score'的'__score'是参变量,是在def __init__()时定义的变量,你括号里的变量名是什么,这个名字就是什么
2015-04-01
最赞回答 / a412739861
setattr()表示你可以通过该方法,给对象添加或者修改指定的属性。setattr()方法接受3个参数:setattr(对象,属性,属性的值)setattr(self,k,v)相当于self.k = vjob = 'Students' 应该是自动匹配成了字典(这一点我也不太明白)kw.iteritems()这个好像是历遍字典kw的所有key和value,分别匹配的是k,v
2015-04-01
最赞回答 / dev_林杰
>>> ('abc')'abc'>>> type('abc')<type 'str'>>>> type('abc',)<type 'str'>>>> type(('abc'))<type 'str'>>>> type(('abc',))<type 'tuple'>>>>
2015-03-31
最赞回答 / a412739861
因为f(i)在i的值没发生变动的时候,就已经完成计算了。所以f(i)是已经算出来的具体数值了而非之前的调用函数——lazy_sum之类的效果。这个数值已经计算好了。然后i继续迭代。与这里的f(i)已经无关了。
2015-03-27
最新回答 / ffan
对,执行f1, f2, f3 = count()的时候,不会去运行def f():这个函数,但是for循环却会一直执行,而且每次都会将f()追加到fs,但因为没有传入i值,所以每次循环下来追加的都是f(),即为同一个数值,当然会覆盖掉之前的f()!!所以当输入print f1()的时候,此时运行def f():这个函数的时候,i值变为3,返回的就是9了。不知道理解的对不对,如有错,望指正!!
2015-03-27