最新回答 / 疯狂的王
print filter(lambda s: s if len(s.strip()) > 0, ['test', None, '', 'str', ' ', 'END'])这里不能用if , 这种写法的逻辑是if如果满足为真就返回s。但是filter()函数里面包含两个参数,第一个是一个判断语句,第二个是一个list如果第一个参数返回了s,肯定出现语法错误
2018-07-23
最新回答 / 拾荒丶
老师 ppt上的是return f(x) 因为f1函数在f1=new_fn(f1)的时候已经作为参数传入了new_fn(f)这个函数即参数f就是你传入的f1函数
2018-07-22
已采纳回答 / 慕仙9155446
def f(x, y):返回的两个数的乘积 reduce函数是提取列表里面的两个数值进行f函数运算 lazy_prod()和 calc_prod(lst)是这节课讲的函数 你仔细看看 在复习一下reduce函数就可以了运行的时候f = calc_prod([1, 2, 3, 4]),f是返回的return lazy_prod ,是函数对象 参数已经传进去了 在 f(x, y)里面 返回的函数对象f()调用一下就有结果了
2018-07-22
最赞回答 / 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