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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 模块管理工具:

        1. easy_install

        2. pip or pip3(Python 推荐,已内置到Python2.7.9)

    查找第三发模块的名字:https://pypi.python.org/

    查看全部
  • 当新版本的一个特性与旧版本不兼容时,该特性将会在旧版本中添加到__future__中,以便旧的代码能在旧版本中测试新特性。

    from __future__ import #新规则名称

    在Python 3.x中,字符串统一为unicode,不需要加前缀 u,而以字节存储的str则必须加前缀 b,__future__的unicode_literal可以兼容。

    from __future__ import unicode_literals


    查看全部
  • 返回的是三个函数,如果使用i的话会导致每个函数里面的i都改变,所以闭包里面不能使用循环的局部变量

    查看全部
    0 采集 收起 来源:python中闭包

    2019-04-18

  • 两个不同的模块中相同功能的StringIO函数。没有模块cStringIO,则会导入StringIO: 

    try:
        from cStringIO import StringIO
    except ImportError:
        from StringIO import StringIO

    两个不同名称的模块,功能相同:

    try:
        import json as json
    except ImportError:
        import simplejson as json


    查看全部
  • import...文件中导入模块:

    import math
    # math.pow(2,3)

    from...import...导入用到的math模块的某几个函数,而不是所有函数:

    from math import pow, sin, log
    # pow(2,3)

    from...import...as...解决不同模块的命名冲突:

    from math import pow as poww
    # poww(2,3)


    查看全部
  • 包是文件夹,模块是.py文件,每一层包下面必须有一个__init__.py文件,即使包下面没有其他文件,因为只有这样,python才会把该文件夹当成包来处理。

    查看全部
  • functools.partial可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值,这样,新函数调用的难度就降低了。

    查看全部
    0 采集 收起 来源:python中偏函数

    2019-04-18

  • 内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。闭包中不要包含循环变量,即返回函数不要引用任何循环变量,或者后续会发生变化的变量。

    查看全部
    0 采集 收起 来源:python中闭包

    2019-04-18

  • @decorator可以动态实现函数功能的增加,但是,经过@decorator“改造”后的函数的函数名等属性也会被改造,变成改造器内部定义的wrapper,我们也很难把原函数的所有必要属性都一个一个复制到新函数上,所以Python内置的functools可以用来自动化完成这个“复制”的任务:
    在wrapper函数前使用@functools.wraps(f)

    @functools.wraps(f)        
    def wrapper(*args, **kw):
        # do something


    查看全部
  • 编写一个@performance,它可以打印出函数调用的时间:

    https://img1.sycdn.imooc.com//5cb7ede70001063504230255.jpg

    给 @performace 增加一个参数,允许传入's'或'ms':

    https://img1.sycdn.imooc.com//5cb7edfe0001ba4e04330285.jpg


    查看全部
  • decorator装饰器
    https://img1.sycdn.imooc.com//5cb7d922000114bf12200708.jpg

    查看全部
  • 匿名函数 lambda x: x * x 实际上就是:

    def f(x):
        return x * x

    关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。

    匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。


    查看全部
  • def count():
        fs = []
        for i in range(1, 4):
            def f():
                 return i*i
            fs.append(f)
        return fs
    
    f1, f2, f3 = count()
    # 9 9 9

    以上代码期望输出的是 1 4 9,但最终结果却是 9 9 9 。改动代码达到期望效果:

    def count():
        fs = []
        for i in range(1, 4):
            def f(i = i):
                 return i*i
            fs.append(f)
        return fs
    
    f1, f2, f3 = count()


    查看全部
    0 采集 收起 来源:python中闭包

    2019-04-18

  • def prod(x, y): return (x+x) *y print reduce(prod, [2, 4, 5, 7, 12])
    查看全部
  • def format_name(s): return s[0].upper+s[1:].lower print map(format_name, ['adam', 'LISA', 'barT'])
    查看全部

举报

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

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