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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-02-28

  • 千万不要在实例上修改类属性,它实际上并没有修改类属性,而是给实例绑定了一个实例属性。
    查看全部
  • 访问 p1.address 时,优先查找实例属性,返回'China'。 访问 p2.address 时,p2没有实例属性address,但是有类属性address,因此返回'Earth'。 可见,当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。
    查看全部
  • 访问类属性,不管在哪,一定要用类名加属性名的方式
    查看全部
  • __int__(self,) 初始化实例的属性,同时也具备普通函数的功能,每执行一次就计算函数内容的运算,函数里面引用类的属性需要带上类名。self相当于php的伪变量,为每个实例自身赋值。
    查看全部
  • _xxx 可以在子类中使用。 __xxx 不可以在子类中使用
    查看全部
  • 辣鸡辣鸡
    查看全部
    0 采集 收起 来源:python中闭包

    2017-02-27

  • 辣鸡辣鸡
    查看全部
    0 采集 收起 来源:python中闭包

    2017-02-27

  • -x if x < 0 else x if x<0: return -x else: return x
    查看全部
  • 请注意区分返回函数和返回值: def myabs(): return abs # 返回函数 def myabs2(x): return abs(x) # 返回函数调用的结果,返回值是一个数值 返回函数可以把一些计算延迟执行。例如,如果定义一个普通的求和函数: def calc_sum(lst): return sum(lst) 调用calc_sum()函数时,将立刻计算并得到结果: >>> calc_sum([1, 2, 3, 4]) 10 但是,如果返回一个函数,就可以“延迟计算”: def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum # 调用calc_sum()并没有计算出结果,而是返回函数: >>> f = calc_sum([1, 2, 3, 4]) >>> f <function lazy_sum at 0x1037bfaa0> # 对返回的函数进行调用时,才计算出结果: >>> f() 10 由于可以返回函数,我们在后续代码里就可以决定到底要不要调用该函数。
    查看全部
  • 能够编写模块化的程序,这个厉害
    查看全部
    0 采集 收起 来源:课程介绍

    2017-02-27

  • 1. 注意区分 f1与f1(), f1等价于函数count,输入f1返回的结果是count函数,并没有实际调用这个函数,调用函数需要加括号,此时才开始运算 2. 返回函数的作用之一是可以使计算延迟。上面列子里,在使用f1,f2,f3返回函数count时(f1, f2, f3 = count()),内层函数f()并没有被调用,所以实际并没有计算i x i。然而在这三次返回函数f1,f2,f3的过程中,i已经循环到了3,因此当真正开始调用函数f1()的时候,内层函数的计算已经由 3 x 3 开始。 3. 综上所述,返回函数不要使用循环变量,如在次处内存函数使用循环变量i。
    查看全部
    1 采集 收起 来源:python中闭包

    2017-02-27

  • 计算函数调用的时间可以记录调用前后的当前时间戳,然后计算两个时间戳的差。
    查看全部
  • def f(): print ‘call f()’ def g():#定义函数g: print ‘call g()’ >>> x = f() # 调用f() call f()... >>> x # 变量x是f()返回的函数: <function g at 0x1037bf320> >>> x() # x指向函数,因此可以调用 call g()... # 调用x()就是执行g()函数定义的代码 return g #返回函数g def myabs(): return abs # 返回函数 def myabs2(x): return abs(x) # 返回函数调用的结果,返回值是一个数值
    查看全部
  • lazy_sum后面没有list,但是sum函数和calcz_sum后面有list,因此lazysum后面不能直接加list,必须先调用calcsum的list
    查看全部
    0 采集 收起 来源:python中闭包

    2017-02-27

举报

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

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