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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 要在Python 2.7中引入3.x的除法规则,导入__future__的division: 当新版本的一个特性与旧版本不兼容时,该特性将会在旧版本中添加到__future__中,以便旧的代码能在旧版本中测试新特性。
    查看全部
  • 10 / 3 3.3333333333333335 浮点数 >>> 10 // 3 3 整数
    查看全部
  • 同样的功能,StringIO 是纯Python代码编写的,而 cStringIO 部分函数是 C 写的,因此 cStringIO 运行速度更快。 动态导入 try: from cStringIO import StringIO except ImportError: from StringIO import StringIO 上述代码先尝试从cStringIO导入,如果失败了(比如cStringIO没有被安装),再尝试从StringIO导入。这样,如果cStringIO模块存在,则我们将获得更快的运行速度,如果cStringIO不存在,则顶多代码运行速度会变慢,但不会影响代码的正常执行 try 的作用是捕获错误,并在捕获到指定错误时执行 except 语句。
    查看全部
  • 如果遇到名字冲突怎么办?比如math模块有一个log函数,logging模块也有一个log函数,如果同时使用,如何解决名字冲突? 如果使用import导入模块名,由于必须通过模块名引用函数名,因此不存在冲突: import math, logging print math.log(10) # 调用的是math的log函数 logging.log(10, 'something') # 调用的是logging的log函数
    查看全部
  • 如果我们只希望导入用到的math模块的某几个函数,而不是所有函数,可以用下面的语句: from math import pow, sin, log
    查看全部
  • 同名模块放入不同的包中
    查看全部
  • 上一节的@performance只能打印秒,请给 @performace 增加一个参数,允许传入's'或'ms': @performance('ms') def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) 要实现带参数的@performance,就需要实现: my_func = performance('ms')(my_func) 需要3层嵌套的decorator来实现。 参考代码: import time def performance(unit): def perf_decorator(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 return perf_decorator @performance('ms') def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)
    查看全部
  • 1.sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,其中两个参数,list和cmp函数,list要放在cmp函数的前面 2.直接调用sorted函数,不用写L1.sorted,L1被放在了输入参数的位置 3.匿名函数lambda x,y: 冒号后面是对xy进行的操作,你光取x,y的属性能行么,要比较的呀!!!所以是把x,y的属性拎出来,用于比较,函数表示就是cmp(x.name,y.name)
    查看全部
  • map()函数不改变原有的 list,而是返回一个新的 list。
    查看全部
  • 1.定义类:类名首字母大写;括号内要加上从哪个类继承来的;最后要加冒号;pass是有作用的不要不写 class Person(object): pass 2.定义实例:实例名字 = 类名(),类似函数调用 xiaoming = Person() 3.判断两个实例是否相等:直接print xiaoming == xiaohong 这里面相当于在判断两个实例是否指向同一个地址 4.pass在创建类中的作用: ①占位,补充语句,表示do nothing ②保证格式完整 ③保证语意完整
    查看全部
  • Python中对象声明 class ClassName(object): """docstring for ClassName""" def __init__(self, arg): super(ClassName, self).__init__() self.arg = arg
    查看全部
  • 要让 @log 自适应任何参数定义的函数,可以利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用: def log(f): def fn(*args, **kw): print 'call ' + f.__name__ + '()...' return f(*args, **kw) return fn
    查看全部
  • 于参数不是一个的函数,调用将报错
    查看全部
  • lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值
    查看全部
  • 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
    查看全部

举报

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

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