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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 根据对象的某个属性排序 sorted(L1,key=lambda x:x.name) sorted(L1,cmp=lambda x,y:cmp(x.name,y.name))
    查看全部
  • python 安装第三方模块: 1.easy install 2.pip(官方推荐) pip install web.py 安装之后直接import web导入使用。 https://pypi.python.org/ 网站可以搜索模块。
    查看全部
  • 利用ImportError错误,我们经常在Python中动态导入模块: try: from cStringIO import StringIO except ImportError: from StringIO import StringIO try 的作用是捕获错误,并在捕获到指定错误时执行 except 语句。 利用import ... as ...,还可以动态导入不同名称的模块。通过重命名别名而统一。
    查看全部
  • 如果我们只希望导入用到的math模块的某几个函数,而不是所有函数,可以用下面的语句:from math import pow, sin, log 这样只能用包下的这几个函数,其他的都用不了。而且这样很容易名字冲突。 用包名.函数名可以避免名字冲突。也可以给函数起别名,如: from math import log from logging import log as logger Python的os.path模块提供了 isdir() 和 isfile()函数.
    查看全部
  • 引入模块的方法: import 包名.模块名 同名的模块可以放入不同的包中来避免模块名冲突的问题。 包的每一层下面都必需有一个__init.py文件。从而与普通目录区别。
    查看全部
  • 当二进制转换使用较多的时候,可以定义一个int2()的函数,默认把base=2传进去: def int2(x, base=2): return int(x, base) functools.partial可以帮助我们创建一个偏函数,而不需要我们自己定义int2()。 import functools int2 = functools.partial(int, base=2) functools.partial可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值,这样,新函数调用的难度就降低了。
    查看全部
    0 采集 收起 来源:python中偏函数

    2016-05-11

  • 如果要让调用者看不出一个函数经过了@decorator的“改造”,就需要把原函数的一些属性复制到新函数中: def log(f): def wrapper(*args, **kw): print 'call...' return f(*args, **kw) wrapper.__name__ = f.__name__ wrapper.__doc__ = f.__doc__ return wrapper 这样写decorator很不方便,因为我们也很难把原函数的所有必要属性都一个一个复制到新函数上,所以Python内置的functools可以用来自动化完成这个“复制”的任务: import functools def log(f): @functools.wraps(f) def wrapper(*args, **kw): print 'call...' return f(*args, **kw) return wrapper 注意:我们始终无法获得原函数的原始参数信息。
    查看全部
  • 带参数的装饰器,比起不带参数的装饰器,需要在下面多加一层新的函数,用来传递增加的参数。
    查看全部
  • Python的 decorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。 使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写 f = decorate(f) 这样的代码。 要让 @log 装饰函数自适应任何参数定义的函数,可以利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用。 这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前,否则会出错。
    查看全部
  • 匿名函数 lambda x: x * x 实际上就是: def f(x): return x * x 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
    查看全部
  • 闭包的特点是返回的函数还引用了外层函数的局部变量
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-11

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

    2016-05-11

  • 内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。因此,返回函数不要引用任何循环变量,或者后续会发生变化的变量。 def f(j): def g(): return j*j return g 它可以正确地返回一个闭包g,g所引用的变量j不是循环变量,因此将正常执行。 在count函数的循环内部,如果借助f函数,就可以避免引用循环变量i。
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-11

  • Python的函数不但可以返回int、str、list、dict等数据类型,还可以返回函数! 返回函数可以把一些计算延迟执行。例如,如果定义一个普通的求和函数: def calc_sum(lst): return sum(lst) 调用calc_sum()函数时,将立刻计算并得到结果。 但是,如果返回一个函数,就可以“延迟计算”: def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum 调用calc_sum()并没有计算出结果,而是返回函数。 对返回的函数进行调用时,才计算出结果: f() 由于可以返回函数,我们在后续代码里就可以决定到底要不要调用该函数。
    查看全部
  • Python内置的 sorted(L)函数可对list进行排序。 但 sorted(L,f)也是一个高阶函数,它可以接收一个比较函数来实现自定义排序。
    查看全部

举报

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

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