最赞回答 / 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
最赞回答 / 米乐乐果
参考https://docs.python.org/3/library/functions.html?highlight=property#property
2015-03-26