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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。 对一个实例调用类的属性也是可以访问的,所有实例都可以访问到它所属的类的属性: 类属性也是可以动态添加和修改的: 当Person类的address改变时,所有实例访问到的类属性都改变了。
    查看全部
  • 如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。 以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。
    查看全部
  • 什么是装饰器? 问题: 定义了一个函数 想在运动时动态增加功能,又不想改动函数本身的代码 举个例子:假设为一个函数打印一个log功能,正常情况 下可以在函数内部增加一个 print 语句 形如: def f1(x) : print 'Call f1()' return x * x 这样做我们就需要修改代码,那么我们可以使用更简 单的方法(使用高阶函数)。 高阶函数 高阶函数支持接收一个函数作为参数,也可以返回一个函数。 通过定义一个高阶函数,来实现这个装饰器函数 形如: def f1(x): return x*2 def new_fn(f): def fn(x): print 'call'+f.__name__+'()' return f(x) return fn 调用方法: # 给 new_fn()函数传入 f1 函数,得到一个g1 新的函数, g1 = new_fn(f1) # 然后对g1传入参数,这样既可以打印日志,又得到了原函数的返回值 print g1(5) 第二种调用方法 直接把f1函数调用装饰器的结果在赋值给f1本身,因为函数名本身 也是变量,因此就彻底隐藏了f1原始函数的定义了。这个时候,我 们利用f1就只能拿到装饰以后的函数了。 f1 = new_fn(f1) print f1(5) Python内置的@语法,就是为了简化装时期的调用 形如: @new_fn def f1(x): return x * 2 他的语句相当于: #定义一个新函数 def f1(x): return x * 2 '''然后通过new_fn这个高阶函数,返回了一个 新的函数,并且这个新函数有赋给了f1,原有 的f1就被彻底的隐藏起来了''' f1 = new_fn(f1) 装饰器的作用 可以极大的简化代码,避免每个函数编写重复性代码
    查看全部
  • import time,functools def performance(unit): def 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' % (wrapper.__name__, t, unit) return r return wrapper return decorator @performance('ms') def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10) #可对比去除备注前后输出结果,各项配置通过functools复制到wrapper中。再传入函数f后即刻配置(删除此行调试)#
    查看全部
  • filter 和 map在python 3中已经不再返回列表,而是一起奇怪的东西,需要list(),变成列表才可以用
    查看全部
  • python3中,要使用reduce,得从functools中引入,加上: from functools import reduce 才能够用。
    查看全部
  • 1 python 3中已经没有cmp函数 2 sorted函数也不一样了 改用 key 来自定义排序 reverse 确定是否倒序
    查看全部
  • -1 表示不用交换 1表示需要交换
    查看全部
  • sorted()接收一个比较函数来实现自定义排序. 比较函数的定义是,传入两个待比较的元素 x, y. 如果 x 应该排在 y 的前面,返回 -1,如果 x 应该在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
    查看全部
  • map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。 upper()是大写函数 lower()是小写函数
    查看全部
  • reduce()传入的函数f必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。
    查看全部
  • filter函数接收一个函数 f 和一个list f的作用是对每个元素进行判断,返回 True或 False filter函数根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
    查看全部
  • 这题的意思是 按abc顺序排就行了 所以s1.upper>s2.upper 的时候返回值为1就行了
    查看全部
  • 返回闭包不能引用循环变量
    查看全部
    0 采集 收起 来源:python中闭包

    2017-02-02

  • 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-02-02

举报

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

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