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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • import time, functools def performance(unit): def perf_decorator(f): @functools.wraps(f) def wrapper(*args, **kw): stime = time.time() res = f(*args, **kw) etime = time.time() mu = 1 if unit == 'ms': mu = 1000 elif unit == 's': mu = 1 print 'call %s().time:%s %s' % (f.__name__, (etime - stime) * mu, unit) return f(*args, **kw) return wrapper return perf_decorator @performance('ms') def factorial(n): return reduce(lambda x, y: x * y, range(1, n + 1)) print factorial.__name__
    查看全部
  • def log(f): def wrap(*args, **kw): stime=time.time() res=f(*args, **kw) etime = time.time() mu=1 if unit=='ms': mu=1000 ; elif unit=='s': mu=1; print 'call %s()... time:%s %s' % (f.__name__,(etime-stime)*mu,unit) return f(*args,**kw) return wrap return log
    查看全部
  • 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
    查看全部
  • def f(x): return x * 2 def new_fun(af): def fun(x): print(x, '*', x, '=') return af(x) return fun print(new_fun(f)(2))
    查看全部
  • def count(): fs = [] for i in range(1, 4): def f(j): def g(): return j*j return g r = f(i) fs.append(r) return fs f1, f2, f3 = count() print f1(), f2(), f3()
    查看全部
    0 采集 收起 来源:python中闭包

    2017-06-28

  • Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。
    查看全部
  • 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变
    查看全部
    0 采集 收起 来源:python中闭包

    2017-06-28

  • def calc_prod(lst): def lazy_prod(): return reduce(lambda x, y: x * y, lst, 1) return lazy_prod f = calc_prod([1, 2, 3, 4]) print(f()) return reduce(f,lit,1) return lazy_prod f = calc_prod([1, 2, 3, 4]) print f()
    查看全部
  • >>> x = f() # 调用f() call f()... >>> x # 变量x是f()返回的函数: <function g at 0x1037bf320> >>> x() # x指向函数,因此可以调用 call g()... # 调用x()就是执行g()函数定义的代码
    查看全部
  • import math def is_sqr(x): r = int(math.sqrt(x)) return r * r == x print filter(is_sqr, range(1, 101))
    查看全部
  • 我用的是python3.6.1版本 from functools import reduce def calc_prod(s): def lazy_prod(): def f(x,y): return x*y return reduce(f,s,1) return lazy_prod() #这里加括号可以直接调用,打印a变量是直接运算函数得到结果。 a = calc_prod([1,2,3,4]) print(a) #执行结果如下: D:\Programs\Python\Python36\python.exe "D:/Program Files/JetBrains/PycharmProjects/python/day1/python_返回函数.py" 24 如果return lazy_prod后面不加括号,print(a())这里就得加个括号,才会执行函数lazy_prod() from functools import reduce def calc_prod(s): def lazy_prod(): def f(x,y): return x*y return reduce(f,s,1) return lazy_prod a = calc_prod([1,2,3,4]) print(a()) #同样会打印24这个值 print(a) #如果这里不调用就是不加个括号的话就会只打印函数如下: <function calc_prod.<locals>.lazy_prod at 0x000001FE90578268>
    查看全部
  • cmp(x,y) 函数用于比较2个对象, 如果 x < y 返回 -1 如果 x == y 返回 0 如果 x > y 返回 1 lower()函数 返回将字符串中所有大写字符转换为小写后生成的字符串。
    查看全部
  • s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符
    查看全部
  • capitalize() 首字母大写,其余全部小写 upper() 全转换成大写 lower() 全转换成小写 title() 标题首字大写
    查看全部
  • 闭包(Closure)内层函数引用了外层函数的变量
    查看全部
    0 采集 收起 来源:python中闭包

    2017-06-27

举报

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

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