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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 1.如果导入的模块不存在,Python解释器会报ImportError错误 2.利用ImportError错误,可以在Python中动态导入模块 try: from cStringIO import StringIO except ImportError: from StringIO import StringIO try的作用是捕获错误,并且捕获到指定错误执行except语句 3.利用import...as..可以动态导入不同名称的模块 import json as json import simplejson as json
    查看全部
  • 1.Python的新版本会引入新的功能,但是,实际上这些功能在上一个老版本中就已经存在了。要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现 2.python 2.7 整除 / python 3.5 整除// /会得到浮点数 3.from __future__ import division >>> print 10 / 3 3.3333333333333335
    查看全部
  • 1.两个不同的模块提供了相同的功能,比如 StringIO 和 cStringIO 都提供了StringIO这个功能 2.cStringIO 部分函数是 C 写的,因此 cStringIO 运行速度更快 3.try 的作用是捕获错误,并在捕获到指定错误时执行 except 语句
    查看全部
  • 1.Python使用import语句导入一个模块 import math 2.如果只是导入模块的某几个函数 from math import pow,sin,log 3.如果使用from...import导入的函数重名,可以使用别名 from math import log from logging import log as logger
    查看全部
  • 内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为“闭包”(Closure)。另外,返回函数不要引用任何循环变量,或者后续会发生变化的变量。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-08-09

  • class Person(object): __slots__ = ('name', 'gender') def __init__(self, name, gender): self.name = name self.gender = gender class Student(Person): __slots__ = ('score') def __init__(self,name,gender,score): super(Student,self).__init__(name,gender) self.score=score s = Student('Bob', 'male', 59) s.name = 'Tim' s.score = 99 print s.score
    查看全部
    0 采集 收起 来源:python中 __slots__

    2017-08-09

  • def count(): fs = [] for i in range(1, 4): def f(j): def g(): return j*j return g r = f(i)#当i=1时,r=f(1)即参数j=i=1,后r=g,此时函数g中的j=1,是确定的,只是还没被调用,不返回计算结果 fs.append(r) return fs f1, f2, f3 = count() print f1(), f2(), f3()
    查看全部
    0 采集 收起 来源:python中闭包

    2017-08-08

  • 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。举例如下:
    查看全部
    0 采集 收起 来源:python中闭包

    2017-08-08

  • maxfun def count(): fs = [] for i in range(1, 4): def f(m = i): return m * m#当i=1是,就变成def f(1): return 1*1 但被调用时就会计算1*1并返回结果 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中闭包

    2017-08-08

  • def count(): fs = []#定义了一个空列表赋给变量fs for i in range(1, 4): def f():#定义函数f return i*i#函数体 fs.append(f)#将函数f添加到列表fs中,按照for循环添加三次,这里不是f(),故函数f并没有执行 return fs#返回添加函数f之后的列表fs f1, f2, f3 = count()#f1, f2, f3 = count(),这句话的意思是f1=count()[0],f2=count()[1],f3=count()[2].这种赋值语句只能用于数组,一一对应。count()即执行count函数,依照上面会返回一个列表fs[f,f,f],故也就是f1=fs[0],所以f1()就是f(),然而执行了三次循环后i的值就是3,这是在来执行f(),则传入的参数都是3 print f1(), f2(), f3()
    查看全部
    0 采集 收起 来源:python中闭包

    2017-08-08

  • 就是外层函数里面在定义一个函数(可以称之为函数2),最后返回这个函数2,而且传进去的参数外层函数不要用,要拿来给函数2用。
    查看全部
  • def calc_prod(lst): def lazy_prod(): def f(x, y): return x * y return reduce(f, lst, 1) return lazy_prod f = calc_prod([1, 2, 3, 4])#定义一个变量来接收返回值,即方法lazy_prod,所以f = lazy_prod print f()#f()即lazy_prod(),调用lazy_prod方法,返回值为reduce(f, lst, 1)函数,自行运算并打印输出
    查看全部
  • <function g at 0x1037bf320>是什么意思? g函数所在的内存单元为0x1037..里,因此g代表的是一个函数对象,g()则代表的是函数计算所return的结果 以下是我个人的理解: 1、这是一个无参的函数 f,函数的过程输出是 'call f()...' ,在f中定义了一个g函数作为返回的对象,返回的是指向g函数的标签引用(通俗讲就是g函数的入口地址作为了返回值)。 2、f()就是执行了函数f,返回的是函数g的引用,函数过程中输出‘call f()...’ 3、x=f() 就是讲f函数的执行结果给x,即 将结果 函数g 的引用(不是g的结果)给x,此时,x是指向g函数的入口,就等于是g 4、x()就是g(),所以输出g的执行结果 'call g()...' 。这时候x 和 g 没区别,是同一个指向,相当于x是g的别名。 f()执行之后只有一个返回结果,1个,就是 return之后的g 'call f()...'不是返回结果,它只是函数在执行过程中的一条语句而已,恰巧这条语句是个print 向屏幕输出了文本,让你误以为是个返回结果。你可以把它换成X=1 ,这样你执行f() 就不会有结果输出了,实际的返回是 g 这样 就能理解了。
    查看全部
  • def cmp_ignore_case(s1, s2): u1 = s1.upper() u2 = s2.upper() if u1 < u2: return -1 if u1 > u2: return 1 return 0 print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case) if u1 < u2: return -1 if u1 > u2: return 1 return 0 顺序,格式固定,s1-s2 倒序,格式固定,s2-s1 比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
    查看全部
  • def prod(x, y): return x*y 不能: def prod(x, y): x*y
    查看全部

举报

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

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