已采纳回答 / 慕粉1528527963
例子中定义了新函数fn,作用是除了包含旧函数的功能,还添加了前面print 'call...的功能,在新函数中,这两者是一个整体,而你这样定义的new_fn(f)里两者是独立的,它的逻辑是先打印 call f1(),然后return f1(x)旧函数,只是一个流程,这样单独用没问题。但由于返回函数的作用是延迟计算,你这里的new_fn函数的f会延迟计算,但前面的print 'call’部分不会,每次用@new_fn的时候,还未输入变量,print ‘call’都会先执行一遍。
2018-07-26
最新回答 / 精慕门8122441
def count(): fs = [] for i in range(1, 4): def f(j): def g(): return j*j return g r=f(i) fs.append(r) return fsf1, f2, f3 = count()print f1(), f2(), f3()需要用匿名函数再包装下
2018-07-24
最新回答 / 慕仔5308971
>>>f = open('a.txt', 'r')
>>>f.read(5)
'hello'
read( )是读文件的方法,括号内填入要读取的字符数,这里填写的字符数是5,如果填写的是1那么输出的就应该是‘h’。原地址:http://www.iplaypy.com/sys/open.html希望对你有帮助。
2018-07-24
最新回答 / 秋山在此
import mathdef is_sqr(x): return math.sqrt(x)%1==0print filter(is_sqr, range(1, 101))
2018-07-24
最新回答 / 蓝蓝蓝蓝调_
先import functools然后在def fa()上面加一行@functools.wraps(f)参考https://www.imooc.com/code/6067
2018-07-24
最新回答 / eddie5010
f = Fib(10)创建的是一个对象f,print打印的是对象的信息;而print f(10)是调用f对象的方法,即重写的__call__() 方法。
2018-07-23
最新回答 / 疯狂的王
print filter(lambda s: s if len(s.strip()) > 0, ['test', None, '', 'str', ' ', 'END'])这里不能用if , 这种写法的逻辑是if如果满足为真就返回s。但是filter()函数里面包含两个参数,第一个是一个判断语句,第二个是一个list如果第一个参数返回了s,肯定出现语法错误
2018-07-23