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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 千万不要在实例上修改类属性,它实际上并没有修改类属性,而是给实例绑定了一个实例属性。
    查看全部
  • 当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。
    查看全部
  • python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前,像foo(a=1, b='2', c=3, a', 1, None, )这样调用的话,会提示语法错误“SyntaxError: non-keyword arg after keyword arg”。
    查看全部
  • 再做。 解释器内部会将**kw拆分成对应的dict. setattr()方法接受3个参数:setattr(对象,属性,属性的值) setattr(self,k,v)相当于self.k = v kw.iteritems()历遍字典kw的所有key和value,分别匹配k,v
    查看全部
  • 闭包的特点是 返回的函数 引用了外层函数的 局部变量。。。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-11-20

  • 当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。
    查看全部
  • def is_not_empty(s): return s and len(s.strip()) > 0 #将去掉空格之后,长度大于0的s返回 print filter(is_not_empty, ['test', None, '', 'str', ' ', 'END'])#判断函数,将list中的元素带入比较函数中进行判断,将符合条件的元素进行返回
    查看全部
  • 关于任务中的习题: 闭包需要牢记的一点是,返回函数不要引用任何循环变量,或者后续会发生变化的变量。 如果一定要引用循环变量怎么办? 方法是再创建一个函数,用该函数的参数绑定循环变量当前的值,无论该循环变量后续如何更改,已绑定到函数参数的值不变。(廖雪峰官网中介绍的,这里没有说明) 所以根据这个方法来做这个任务,在f()下面再定义一个函数g(),g()这个函数中的变量和循环变量i进行绑定,那么后续无论i怎么变,已经绑定的值就不会再变了。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-01-15

  • 先来弄懂例子 def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count() 。f1, f2, f3 = count() 这个代码是什么意思,最开始理解为:把count()赋值给f1,f2,f3,即等同于 f1 = count() f2 = count() f3 = count() 而这种理解是错误的。因为count最后返回的是fs,fs是一个list,其中有三个元素,而这个代码的意思是把这三个元素分别赋值给f1,f2,f3.所以最后f1f2f3返回的是数字,而不是list。 为什么最后f1f2f3返回的数字是一样的,因为在函数里,最后添加到fs的是什么,是一个f函数,而不是最终的值,如果是添加最终值,应该是fs.append(f())并且这三个f函数中都引用了同一个变量i,而变量i是可变的,在最后调用这个函数的时候才把值展示,这样的话就会导致,在最后调用这个f函数的时候i是等于3的,所以就出现了f1f2f3三个值相等的情况。
    查看全部
    4 采集 收起 来源:python中闭包

    2017-01-15

  • 高阶函数就是接收函数作为参数的函数。
    查看全部
  • import time def performance(f): def fn(*args,**kw): t_start=time.time() r=f(*args,**kw) t_end=time.time() print 'call %s() in %fs'%(f.__name__,(t_end-t_start)) return r return fn @performance def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)
    查看全部
  • int是指整数
    查看全部
  • 下一步学习方向: IO: 文件与Socket 多任务:进程和线程 数据库 Web开发
    查看全部
    0 采集 收起 来源:课程总结

    2017-01-14

  • float(self.p/self.q)和float(self.p)/self.q在“除数和被除数都是整数”的情况下有区别
    查看全部
  • mark:(添加求最大公约数函数,并置于Rational类外部) def gcd(a,b): if b == 0: return a return gcd(b, a % b)
    查看全部

举报

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

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