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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 只有以双下划线开头的"__job"不能直接被外部访问。 但是,如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。 以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。
    查看全部
  • # -*- coding: utf - 8 -*- try: import json except ImportError: import simplejson as json print json.dumps({'python':2.7}) #try捕捉错误,如果错误则执行后面的except #import sth sa sth 改名
    查看全部
  • 解释器内部会将**kw拆分成对应的dict. setattr()方法接受3个参数:setattr(对象,属性,属性的值) setattr(self,k,v)相当于self.k = v kw.iteritems()历遍字典kw的所有key和value,分别匹配k,v
    查看全部
  • 字母大写 upper() 字母小写 lower()
    查看全部
  • 首先是sorted函数,第一个参数为LIST 即 L1 第二个参数为定义的比较函数; lambda p1, p2: cmp(p1.name, p2.name) 意思是,传入p1和p2,比较两者的name L2=sorted(L1, key=lambda x:x.name)
    查看全部
  • 2-12Python中编写无参数的装饰器decrator python注释:# 并且只能用英文,中文注释会报错 代码细讲: import time def performance(f): def fn(*args, **kw): t1=time.time()#获取当前时间 r=f(*args, **kw) #*args, **kw确保了无论factorial有多少个参数都可以正常调用 t2=time.time() print 'call %s() in %fs' % (f.__name__, (t2 - t1)) # f.__name__返回函数的名字 return r return fn #这里返回了一个新的函数,这个新函数返回的是新添加的功能+原来的函数 @performance #@performance就相当于简写了factorial=performance(factorial) def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)
    查看全部
  • import time, functools def performance(unit): def perf_decorator(f): @functools.wraps(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.__name__ #注意@functools.wraps(f)的用法及其放置位置
    查看全部
  • lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。 lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了。 lambda就是用来定义一个匿名函数的,如果还要给他绑定一个名字的话,就会显得有点画蛇添足,通常是直接使用lambda函数。如下所示: add = lambda x, y : x+y add(1,2) # 结果为3
    查看全部
    0 采集 收起 来源:python中偏函数

    2018-03-06

  • sorted 语法: sorted(iterable[, cmp[, key[, reverse]]]) 参数说明: iterable -- 可迭代对象。 cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。 key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。 reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。 返回值 返回重新排序的列表。
    查看全部
    0 采集 收起 来源:python中偏函数

    2018-03-06

  • cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
    查看全部
    1 采集 收起 来源:python中偏函数

    2018-03-22

  • 2-11python中的decorator装饰器 定义了一个函数,想在运行时动态增加功能,又不想改动函数本身的代码。
    查看全部
  • import time, functools def performance(unit): def perf_decorator(f): @functools.wraps(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.__name__
    查看全部
  • %s:格式化字符串 %f:格式化浮点数字,可指定小数点后的精度 % :可理解为格式化输出的标志 Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。(类似于占位符) 即%s对应f.__name__获取到的函数名,%f对应t2-t1的时间差
    查看全部
  • 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) #神奇,三层嵌套,先稍微理解下
    查看全部
  • import time def performance(f):#定义能传入函数的装饰器函数 def fn(*args, **kw):#定义装饰函数具有额外功能并能返回并调用传入函数 t1 = time.time() r = f(*args, **kw) t2 = time.time() print 'call %s() in %fs' %(f.__name__, (t2 - t1)) return r return fn#返回子函数(修饰函数)形成闭包 @performance def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10) #此时的factorial是经过修饰的函数即 factorial = performance() = fn #注意一下时间函数time.time()以及f.__name__的意思
    查看全部

举报

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

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