最新回答 / 黑人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
已采纳回答 / a_flying_fish
s and len(s.strip()) > 0这里是一个bool表达式,,相当于(s) and (len(len(s.strip()) > 0),如果你学过其他计算机语言,理解起来就是s && len(s.strip()) > 0,其中s.strip()指的是去掉字符串首尾的空格剩下的字符串,len(...)就是长度了根据python的and运算规则,0,none,“”表示逻辑的False,如果此处s为False,则返回False,如果s不为False,当s.strip...
2017-08-26
最赞回答 / 慕田峪6529258
之前廖老师有说过filter函数的应用。filter(函数,可迭代的对象),可迭代对象中的元素代入第一个函数,函数返回值为True,则选择,否则过滤,这就是fliter函数的功能。所以lambda x: x[0]!='_'这个匿名函数的意义 迭代对象的第一个元素不为0则返回True,否则返回False。dir(p)则是迭代对象,p的属性的列表集合。整合在一块而便是筛选出符合条件(属性不以 _ 开头)的属性。望采纳,谢谢!
2017-08-25
已采纳回答 / Mad_King3552331
你说的问题有两个方面,我觉得是你没弄明白u和b的区别。一、Python 2有两种字符串类型:Unicode字符串和非Unicode字符串,Python 3只有一种类型:Unicode字符串(Unicode strings)。python2中字符串是以beytes方式存储的,pyton3中字符串是以unicode方式存储的。引用python的模块后,s = 'am I an unicode?' 默认就是Unicode方式存储的,这对应了Python2 的s = u'am I an unicode?'例如在p...
2017-08-24