最赞回答 / 暧月的猫
<...code...>先这么看 count返回一个数组。 你的问题完美解决了。再看这个数组里到底是啥<...code...>重点是fs.append(f)而f是一个函数,所以循环了3次,往fs里面加了三个函数。那最后的答案就是count函数返回一个数组,数组中有三个函数。至于这三个函数做了什么,你可以再细致的分析。
2017-09-01
已采纳回答 / kelerensheng
我之前也困惑过,然后找到的原因是:在python中执行到return语句时,会退出函数,return之后的语句不再执行(将return语句放在try语句块中例外)。所以对应这里的代码,逻辑上就是前两个return放到了if语句中,当第一个if条件满足时返回-1结束函数,不满足时不会执行return;然后判断第二个if语句,同理条件满足则返回1结束函数,不成立则执行最后一个return语句返回0.
2017-09-01
最新回答 / 黑人wxy
def log(f): def wrapper(*args, **kw): print 'call...' return f(*args, **kw) return wrapper@logdef f2(x): passprint f2.__name__你看这个就没有,怎么可以呢,难道跟被装饰的函数有无返回值有关
2017-08-29
最新回答 / 慕村8182185
def performance(f): def fn(*args,**kw): start=time.time() return f(*args,**kw) end=time.time() print 'call %s() in %fs' % (f.__name__, (end - start)) return fn如果你这里是return的话代码是这样的,你看看能通么,去重新看一下基础return的返回值...
2017-08-29
最赞回答 / guyun
【答案中为什么不用定义这个grade】 不能加在__init__中, __init__函数是初始化实例的作用,意思就是你创建s这个对象的时候(就是这个s = Student('Bob', 59))必须要赋值,既然要把grade加进去,那你创建s实例的时候也要给它赋值。就相当于传入了三个参数。 题目给的意思是要给class类创建一个属性,而不是给实例创建属性。所以不能加在init函数中。@property这个装饰器可以将类里的一个方法(也就是平时的函数)变成类的属...
2017-08-28
已采纳回答 / __微醺
来看看r = f(i),这里的r引用了f函数,所以r可以当做一个函数调用,调用r()就是相当于调用f(i),接着我们把r添加进了列表。相当于 fs[f(i)]。接着for又循环了两次,所以啊,最后返回的是一个包含三个元素的列表,每个元素都是一个函数,这个函数就是f(i)的返回值g函数。至于你说的j值,只是个形参,在r = f(i) 这里就是把i值赋给了形参j了 所以 j就是"当时的i"。
2017-08-28