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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 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 pref_decorator @performance('ms') def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)
    查看全部
  • 格式 描述 %% 百分号标记 #就是输出一个% %c 字符及其ASCII码 %s 字符串 %d 有符号整数(十进制) %u 无符号整数(十进制) %o 无符号整数(八进制) %x 无符号整数(十六进制) %X 无符号整数(十六进制大写字符) %e 浮点数字(科学计数法) %E 浮点数字(科学计数法,用E代替e) %f 浮点数字(用小数点符号) %g 浮点数字(根据值的大小采用%e或%f) %G 浮点数字(类似于%g) %p 指针(用十六进制打印值的内存地址) %n 存储输出字符的数量放进参数列表的下一个变量中
    查看全部
    0 采集 收起 来源:课程介绍

    2016-10-27

  • 这一节需要复习
    查看全部
    0 采集 收起 来源:python中闭包

    2016-10-27

  • 接收函数做为参数的函数就是高阶函数
    查看全部
  • for k, v in kw.iteritems(): setattr(self, k, v)
    查看全部
  • 太严格了,这个测试用的小东西。
    查看全部
  • Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。看例子: class Person(object): def __init__(self, name): self.name = name self._title = 'Mr' self.__job = 'Student' p = Person('Bob') print p.name # => Bob print p._title # => Mr print p.__job # => Error Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'Person' object has no attribute '__job' 可见,只有以双下划线开头的"__job"不能直接被外部访问。 但是,如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。 以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。
    查看全部
  • map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。 调用 reduce(f, [1, 3, 5, 7, 9])时,reduce函数将做如下计算: 先计算头两个元素:f(1, 3),结果为4; 再把结果和第3个元素计算:f(4, 5),结果为9; reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为100,计算: 计算初始值和第一个元素:f(100, 1),结果为101。 filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。 def is_not_empty(s): return s and len(s.strip()) > 0 filter(is_not_empty, ['test', None, '', 'str', ' ', 'END']) s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。 当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')
    查看全部
  • def is_not_empty(s): return s and len(s.strip()) > 0 filter(is_not_empty, ['test', None, '', 'str', ' ', 'END'])
    查看全部
  • functools.partial可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值
    查看全部
    0 采集 收起 来源:python中偏函数

    2016-10-26

  • 经过装饰后的函数原函数名已经变为装饰器最里层函数名,在某些需要用到原函数 函数名等基本属性的地方 则需要映入 functools模块 import functools @functools.wraps(f) def wrapper(*args, **kw):#写在最里层函数wrapper之前
    查看全部
  • 通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count。 这段有点蒙,先记下。
    查看全部
  • **kw是关键字参数,用于字典 iteritems()用于字典kw的遍历 setattr(self, k, v)就等价于self.k = v 综上就是,遍历dict kw 中的属性,给每个属性设置了属性值
    查看全部
  • 函数式编程不等于函数
    查看全部
  • import time def performance(f): def print_time(*args,**kw): t1=time.time() f(*args,**kw) t2=time.time() print 'call %s() in %s'%(f.__name__,(t2-t1)) return f(*args,**kw) return print_time @performance def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)#计时t1,调用函数f(),计时t2,则t2-t1就是函数调用所需时间
    查看全部

举报

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

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