-
闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)。查看全部
-
返回的是装有三个返回函数的list查看全部
-
函数名是指向一个函数的变量查看全部
-
由于decorator返回的新函数函数名已经不是'f2',而是@log内部定义的'wrapper'。这对于那些依赖函数名的代码就会失效。decorator还改变了函数的__doc__等其它属性。如果要让调用者看不出一个函数经过了@decorator的“改造”,就需要把原函数的一些属性复制到新函数中查看全部
-
map(f,list),reduce(f,list),filter(f,list)三者都是函数f在前,而list在后。sorted(list,f)却是list在前,函数f在后。查看全部
-
像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。举例如下:查看全部
-
要让 @log 自适应任何参数定义的函数,可以利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用: def log(f): def fn(*args, **kw): print 'call ' + f.__name__ + '()...' return f(*args, **kw) return fn 现在,对于任意函数,@log 都能正常工作。查看全部
-
def log(f): def fn(*args, **kw): print 'call ' + f.__name__ + '()...' return f(*args, **kw) return fn @log def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10) 支持任何参数,保证任意个数参数都能使用@log查看全部
-
decorade装饰器使用: def log(f): def fn(x): print 'call ' + f.__name__ + '()...' return f(x) return fn @log def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)查看全部
-
装饰器的作用, 需要打印日志的地方,直接写log就可以查看全部
-
@装饰器简化 f1(5)查看全部
-
f1(5) f1原始函数定义被隐藏查看全部
-
匿名函数: >>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]) [1, 4, 9, 16, 25, 36, 49, 64, 81] 通过对比可以看出,匿名函数 lambda x: x * x 实际上就是: def f(x): return x * x 匿名函数只能有一个表达式查看全部
-
使用range实现 也可以使用reduce实现连乘方法查看全部
-
对 int、str 等内置数据类型排序时,Python的 sorted() 按照默认的比较函数 cmp 排序,但是,如果对一组 Student 类的实例排序时,就必须提供我们自己的特殊方法 __cmp__(): 截图为复杂的写法查看全部
举报
0/150
提交
取消