最赞回答 / 昵称2_18位中英文
返回装饰过的原程序啊原程序像一辆白色的车f(x),装饰器像一个修理厂log(),把车开进去就是log(f),可以有多种装饰如喷漆fn(x)换轮胎fm(x),我们选择喷漆return fn,所以进入到fn(x)的流程中,走完这个流程后喷好了,把新车开出来f(x)这里面不带括号的fn是指针,指向函数fn()所在的内存地址。带括号的fn(x) f(x) log(f)是具体的函数。
2016-05-13
我来解释一下,理解了好久
就是说fs定义了一个list,但是底下的append步骤只是加入函数所以返回的fs里面就是fs=[f,f,f],当f函数计算时i已经为3,所以结果都是9
不用标准答案稍稍改一下代码
def count():
fs = []
for i in range(1, 4):
def f():
return i*i
fs.append(f())
return fs
d = count()
print d[0]
print d[1]
print d[2]
这次我是直接返回值,就会好啦
就是说fs定义了一个list,但是底下的append步骤只是加入函数所以返回的fs里面就是fs=[f,f,f],当f函数计算时i已经为3,所以结果都是9
不用标准答案稍稍改一下代码
def count():
fs = []
for i in range(1, 4):
def f():
return i*i
fs.append(f())
return fs
d = count()
print d[0]
print d[1]
print d[2]
这次我是直接返回值,就会好啦
2016-05-13
print filter(lambda s:s and len(s.strip())>0,['test', None, '', 'str', ' ', 'END'])
2016-05-13
def calc_prod(L):
def last():
cal=1
for x in L:
cal = cal * x
print cal
return last
ls=[1,2,3,4]
now = calc_prod(ls)
now()
def last():
cal=1
for x in L:
cal = cal * x
print cal
return last
ls=[1,2,3,4]
now = calc_prod(ls)
now()
2016-05-12
只改写count函数,以 f1(), f2(), f3()输出的方法:
global i
i=0
def count():
fs = []
def f():
global i
i+=1
return i*i
for cnt in range(3):
fs.append(f)
return fs
f1, f2, f3 = count()
print f1(), f2(), f3()
global i
i=0
def count():
fs = []
def f():
global i
i+=1
return i*i
for cnt in range(3):
fs.append(f)
return fs
f1, f2, f3 = count()
print f1(), f2(), f3()
2016-05-12
def __str__(self):
#if self.q == 1:
#return '%s' % (self.p)
return '%s/%s' % (self.p, self.q)
#if self.q == 1:
#return '%s' % (self.p)
return '%s/%s' % (self.p, self.q)
2016-05-11
已采纳回答 / qq_Bestinme_0
是加了个__score吧,那个相当于私有属性了,外部访问不了,只能通过内部实例方法调用,如果直接写self.score那就相当于score的类型是public公共类型了,外部可以直接访问
2016-05-11
类属性直接在class下一行,函数def上一行建立,同时用等号赋值
由于创建实例必定会调用__init__()方法,所以在这里修改类属性count很合适
由于创建实例必定会调用__init__()方法,所以在这里修改类属性count很合适
2016-05-11