为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
python进阶_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 解释器内部会将**kw拆分成对应的dict. setattr()方法接受3个参数:setattr(对象,属性,属性的值) setattr(self,k,v)相当于self.k = v kw.iteritems()历遍字典kw的所有key和value,分别匹配k,v
    查看全部
  • sorted
    查看全部
  • performance是一个装饰器,用于统计程序的执行时间。 装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。装饰器就是一个函数,与普通函数不同的是装饰器的输入参数是一个函数。 @performance def factorial(n): 等价于 performance(factorial)(n) 追问 print语句里是什么意思啊 追答 'call %s() in %fs'是格式字符串,%s是参数待替换的位置 (f.__name__, (t2 - t1))是格式字符串传入的参数,参数用一个元组来表示 中间的%是分隔符 f.__name__:__name__是一个特殊方法,存储的是函数的名称,每一个函数都会自动有这个方法
    查看全部
  • import time, functools def performance(unit): def perf_decorator(f): @functools.wraps(f) def wrapper(*args,**kw): t1 = time.time() r = f(*args,**kw) t2 = time.time() t = (t2 - t1)*1000 if unit == 'ms' else (t2 - t1) print 'call %s() in %f %s' % (f.__name__, t, unit) return r return wrapper rerurn perf_decorator @performance('ms') def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial.__name__
    查看全部
  • 这里 factorical = performance('ms')(factorical) 意味着performance('ms')需要返回一个decorator 才能装饰factorical,所以需要三层嵌套:一层用于接收@performance自身的参数'ms'(多参数相同),第二层用于接收函数factorical,第三层用于实现装饰效果。 @performance 中真正的装饰器是min_performance(x) 注:这里不需要*args 和**kw是因为factorical中只有一个参数
    查看全部
  • %是格式化的意思,%s是格式化字符串,%f是格式化浮点数,这句话的意思是把f.__name__插入到了%s这个位置,(t2-t1)计算后的值插入到了%f这个位置
    查看全部
  • 这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前
    查看全部
  • reduce(...)#python内置函数 reduce(function, sequence[, initial]) -> value 对sequence中的item顺序迭代调用function,函数必须要有2个参数。要是有第3个参数,则表示初始值,可以继续调用初始值,返回一个值
    查看全部
  • 不明白哪里出错了
    查看全部
  • 高阶函数:能够接收 函数做参数的函数 1. 变量可以指向函数 2. 函数的参数可以接收变量 3. 一个函数可以接收另一个函数作为参数 4. 能够接收函数做参数的函数就是高阶函数
    查看全部
  • 参照答案打的,也检查了缩进和半角,怎么还是出错呢?
    查看全部
  • 需要了解下常用的装饰器 @log @performance等等,不然很难看懂代码的意思。 如例子中出现的bug,是因为@log写死了只含一个参数的返回函数。 而后面改进中的*args和**kw也不知道其含义。
    查看全部
  • 有一点存疑,定义了new_fn(f),为什么还要定义一个 fn(x)函数?
    查看全部
  • 装饰器的使用方法:利用高阶函数可以接收函数为参数,并且返回函数的功能。
    查看全部
  • 装饰器产生背景。可以类比化妆、二次开发、包装等的概念。
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!