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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)

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

    2018-04-25

  • 问题的产生是因为函数只在执行时才去获取外层参数i,若函数定义时可以获取到i,问题便可解决。而默认参数正好可以完成定义时获取i值且运行函数时无需参数输入的功能

    查看全部
    1 采集 收起 来源:python中闭包

    2018-04-25

  • reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为100,计算:

    reduce(f, [1, 3, 5, 7, 9], 100)

    结果将变为125,因为第一轮计算是:

    计算初始值和第一个元素:f(100, 1),结果为101


    查看全部
  • try:
        from cStringIO import StringIO
    except ImportError:
        from StringIO import StringIO


    查看全部
  • Python 定义了__str__()和__repr__()两种方法,__str__()用于显示给用户,在交互式命令行下用 print ,而__repr__()用于显示给开发人员,直接敲变量。

    查看全部
  • 任何数据类型都有一个特殊方法__str__(),print函数默认调用实例的__str__()。Python的特殊方法定义在class中,不需要显示调用,某些特定函数或操作符会调用对应的特殊方法,例如:用于print的__str__,len的__len__,cmp函数的__cmp__。注意,有关联性的特殊方法若实现了其中一个就必须全部实现(如getattr、setattr、deletattr)

    查看全部
  • _init_是类的构造函数,self是对对象自身的引用,self.name表示为类添加了name的属性

    查看全部
  • Python中_future_的使用

    当Python新版本与旧版本不兼容时,该特性将会在旧版本中添加到_future_中,以便代码能够在旧的版本中实现新的特性

    例如:

    Python2中   /   表示整除     但是在Python3中   //才表示整除  /将得到带浮点数的结果

    在Python2中用_future_ 方法可以用到Python3中的特性

    from  _future_  import division

    print 10/3

    就可以得到浮点数的结果3.333333333.....


    其中 future 前后各两各下划线

    查看全部
  • isinstance(object, classinfo)
    其中,object 是变量,classinfo 是类型即 (tuple,dict,int,float,list,bool等) 和 class类。

    若参数 object 是 classinfo 类的实例,或者 object 是 classinfo 类的子类的一个实例, 返回 True。
    若 object 不是一个给定类型的的对象, 则返回结果总是False。

    若 classinfo 不是一种数据类型或者由数据类型构成的元组,将引发一个 TypeError 异常。

    >>>isinstance(1,int)
    True
    >>>isinstance(1.0,float)
    True


    查看全部
  • 用 isinstance() 判断它是否是某种类型的实例外,dir()返回所有实例属性,包括`__class__`这类有特殊意义的属性用 type() 函数获取变量的类型,如果已知一个属性名称,要获取或者设置对象的属性,就用 getattr() 和 setattr( )函数

    查看全部
  • JSON(JavaScript Object Notation):一种轻量级数据交换格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是Python的Json模块序列化与反序列化的过程分别是 encoding和 decoding

    encoding:把一个Python对象编码转换成Json字符串
    decoding:把Json格式字符串解码转换成Python对象
    对于简单数据类型(string、unicode、int、float、list、tuple、dict),可以直接处理。

    json.dumps方法对简单数据类型encoding:

    查看全部
  • 利用ImportError错误,我们经常在Python中动态导入模块:

    try:
        from cStringIO import StringIO
    except ImportError:
        from StringIO import StringIO

    上述代码先尝试从cStringIO导入,如果失败了(比如cStringIO没有被安装),再尝试从StringIO导入。这样,如果cStringIO模块存在,则我们将获得更快的运行速度,如果cStringIO不存在,则顶多代码运行速度会变慢,但不会影响代码的正常执行。

    try 的作用是捕获错误,并在捕获到指定错误时执行 except 语句。


    查看全部
  • Python中动态导入模块

    1:cStringIO中的StirngIO方法是经过C部分重写的,所以比StirngIO中的StringIO执行要快。

    2:要动态导入,可以用

         try:

            想优先导入的

         except  ImportError:

            优先导入的不存在,再导入这里的

    3:模块也可以有别名。


    查看全部
  • 如果使用import导入模块名,由于必须通过模块名引用函数名,因此不存在冲突:

    而如果使用from……import 导入log函数,势必引起冲突,这是可以通过给函数起个别名来避免冲突:

    如:from math import log as logger.


    查看全部
  • 如果使用import导入模块名,由于必须通过模块名引用函数名,因此不存在冲突:

    而如果使用from……import 导入log函数,势必引起冲突,这是可以通过给函数起个别名来避免冲突:

    如:from math import log as logger.


    查看全部

举报

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

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