最赞回答 / qq_终与你_1
我是这么理解的啊,新手交流,不知道理解的对不对fs是三个返回函数的集合,f1, f2, f3 = count()是将f1,f2,f3指向fs的三个值(也就是f()函数),f1的时候i是1,但是返回的值是i*i(没有计算),f2的时候i是2,返回的仍然是i*i,f3的时候i是3,返回的还是i*i,这时候i已经是3了,等到print f1(), f2(), f3()的时候,f()函数开始计算值,只能返回3*3了,所以结果就是,9,9,9
2018-07-20
最新回答 / kirito_yes
不是的哦,实例里的闭包函数为什么i已经变成3,那是调用count()时,里面的f()函数已经执行完毕,而问答中的f()为什么能够一个一个执行变成1,4,9这样的结果,是因为f()返回的是函数而不是结果,所以在调用count()时,f()函数处于未执行状态。区别就在这两个地方:<...图片...><...图片...>
2018-07-19
最赞回答 / I_am_东风98K
class Person(object): def __init__(self, name, score): self.name = name self.__score = scorep = Person('Bob', 59)try: print p.name print p.__scoreexcept AttributeError: print p.name print 'attributeerror'这样就可以通过了,捕获异常并且输出异常名...
2018-07-19
最新回答 / 疯狂的王
print filter(lambda s: s if len(s.strip()) > 0, ['test', None, '', 'str', ' ', 'END'])这里不能用if , 这种写法的逻辑是if如果满足为真就返回s。但是filter()函数里面包含两个参数,第一个是一个判断语句,第二个是一个list如果第一个参数返回了s,肯定出现语法错误
2018-07-19
已采纳回答 / 慕仰8584781
一份和一个是在两个维度上的概念每个实例的name属性都各自算是一份属性,其存储于实例的内存空间里(但整体算一个属性);这里是1个属性,但有3份(每个实例一份)address,count,mm这种类属性,只存储于类的内存空间里,每个实例并不会有一份单独的空间进行存储(在调用的时候直接寻址到类的存储空间);所以这里是3个类属性,但每个属性只有一份
2018-07-19
最新回答 / 慕虎9378224
课程中Rational表示有理数,所有有理数都也可以写成分数形式,p代表分子,q代表分母,在这个基础上讨论四则运算,你这里的Rational定义的类具体代表什么对象呢?aa,bb,cc分别想表示什么意思呢,只有先确定了对象才的意义能讨论对象的运算。
2018-07-19
已采纳回答 / 慕前端7431853
后续还有更简单写法class Fib(object): def __call__(self,num): a, b, L = 0, 1, [] for n in range(num): L.append(a) a, b = b, a + b return Lf = Fib()print f(10)
2018-07-18
已采纳回答 / Arrowjyj
100 2 3count是类属性,p1给count赋值,绑定成p1实例属性。属性同名情况下,实例属性优先级更高。但这里创建p1,类属性还是会自增1,与实例属性互不干涉 100 不妨可以在此加 print Person.count 输出看看结果p2 创建,类属性加一。 2p3创建,类属性加一。 3
2018-07-18