为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • 要定义关键字参数,使用 **kw; 除了可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性。 还有一个for循环 for k,v in kw.iteritems():
    查看全部
  • sorted 的写法是 一个list ,一个方法 cmp的方法经常用到
    查看全部
  • 问题的产生是因为函数只在执行时才去获取外层参数i,若函数定义时可以获取到i,问题便可解决。而默认参数正好可以完成定义时获取i值且运行函数时无需参数输入的功能,所以在函数f()定义中改为f(m = i),函数f返回值改为m*m即可
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-16

  • def count(): fs = [] for i in range(1, 4): def f(m = i): return m * m fs.append(f) return fs f1, f2, f3 = count() print f1(), f2(), f3() 方法:问题的产生是因为函数只在执行时才去获取外层参数i,若函数定义时可以获取到i,问题便可解决。而默认参数正好可以完成定义时获取i值且运行函数时无需参数输入的功能,所以在函数f()定义中改为f(m = i),函数f返回值改为m*m即可.
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-16

  • 返回闭包不能引用循环变量
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-16

  • 但是,考察上一小节定义的 calc_sum 函数: def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum 注意: 发现没法把 lazy_sum 移到 calc_sum 的外部,因为它引用了 calc_sum 的参数 lst。 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-16

  • 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
    查看全部
  • 偏函数的写法, 偏函数名 = functools.partial(原函数名,原函数里面的方法或者参数)
    查看全部
    0 采集 收起 来源:python中偏函数

    2016-05-15

  • 写装饰器的时候,def 跟return 是对应的,def什么就返回什么(格式上是水平对齐的),然后,r的调用一定是在两个t1,t2 中间,这样,t2 才是经过了调用原参数之后的时间。 (*args,**kw)就只是为了让装饰器增加对多参数的支持
    查看全部
  • import math def is_sqr(x): return math.sqrt(x)%1 == 0 print filter(is_sqr, range(1, 101))
    查看全部
  • 继承一个类 如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender 定义Student类时,只需要把额外的属性加上,例如score: class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score = score 一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。 函数super(Student, self)将返回当前类继承的父类,即 Person ,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)。
    查看全部
  • 一个.py 文件就是一个模块
    查看全部
  • performance(f) 这里的f 是指向@performance里面的factorial()的<br> fn()代表定义的修改过的f()函数(同时也是为了增加多参数支持),其中包含原函数,用r来调用了一次r=f(*args, **kw),f.__name__也调用了原函数f(),并且把它给返回了return r<br> t1,t2,和print 这几句就是修改原函数f()所增加的部分。
    查看全部
  • 方法:问题的产生是因为函数只在执行时才去获取外层参数i,若函数定义时可以获取到i,问题便可解决。而默认参数正好可以完成定义时获取i值且运行函数时无需参数输入的功能,所以在函数f()定义中改为f(m = i),函数f返回值改为m*m即可.
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-15

  • 闭包还不是很理解 http://www.cnblogs.com/ma6174/archive/2013/04/15/3022548.html
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-15

举报

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

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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