zoukankan      html  css  js  c++  java
  • Python 教程阅读笔记(十):标准库一瞥(续)

    这篇主要涉及一些更高级的模块,这些模块支持那些专业的编程需求,因此在小脚本中是很少出现。

    reprlib模块提供了针对大型或深度内嵌容器的缩略显示的repr()版本(不过说实话,我倒是没看懂给的例子)

    pprint模块提供了对内置及自定义对象以一种可被解释器理解的方式进行打印的更复杂控制的能力。当结果长于一行时,这种“更漂亮的打印”会增加换行和缩进来更好的适配数据结构

    textwrap模块格式化文本段落以适配屏幕宽度

    locale模块可以访问与文化相关数据格式的数据库。locale的分组属性提供了一种直接的方式以一组分割符来格式化数值

    string模块有个Template类可以简化用户的编辑。看看例子就明了了,对与$的转义需使用$$

    >>> from string import Template

    >>> t = Template('${village}folk send $$10 to $cause.')

    >>> t.substitute(village='Nottingham', cause='the ditch fund')

    'Nottinghamfolk send $10 to the ditch fund.'

    当使用substitute()方法时,当占位符未提供时将会抛出KeyError异常。可以使用safe_substitute()方法来部分输出可替换项,对于未提供的占位符保持不变直接输出

     

    模板子类可指定分隔符。

     

    struct模块提供了pack()和unpack()函数来处理变长二进制记录格式,这里举的例子很有意思,是用unpack来解析zip文件,这样可想而知zipfile也许就是按照所有既定规则使用unpack来恢复数据的。

     

    threading是用来对那些没有顺序依赖的任务进行解耦的技术。多线程应用的主要挑战是需要协调线程共享数据和其他资源。线程模块提供了大量的同步原语,如锁,事件,条件变量和信号量。使用队列对象来进行线程间通信的程序是易设计,可读性和可靠性也会较好。

     

    logging模块提供了完整和灵活的日志系统。最简单的形式是,日志信息会被送到一个文件或sys.stderr

    默认情况下,info()和debug()的信息是不会显示的,但是新的规则可以定义来选择消息优先级是否显示:DEBUG,INFO,WARNING,ERROR,CRITICAL

    日志系统可以直接从python上进行配置,也可以用用户可编辑的配置文件进行配置。

     

    weakref模块提供了不创建引用就可以跟踪对象的工具。当对象不再需要时,将自动从weakref表中删除,回调函数将被触发。

     

    array模块提供array()对象,和列表类似,用来存储同质的数据,并更紧凑的存储。

    >>> from array import array   

    >>> a = array('H', [4000, 10, 700, 22222])   每个元素只用2Byte,而不是list中的16字节

     

    collections模块提供了deque()对象,来更快的追加和从左边弹出元素,但是如果从中间查找会更慢

    bisect模块提供了函数操作排序列表

    heapq模块提供了函数来实现基于普通列表的堆。最低值通常保存在位置0,这对那些频繁取用最小元素而不需要进行完整的列表排序的应用是很有用的。

     

    decimal模块提供了Decimal数据类型来进行浮点运算。与内置的二进制浮点实现。有以下好处:

    1.金融应用和其它需要精确十进制表达的场合

    2.控制精度

    3.控制舍入以适应法律或者规定的要求

    4.跟踪精度位置

    5.那些用户希望结果和计算的匹配可以手动调整的场合

     

    Decimal类能够进行精确的模运算,而二进制浮点运算不行

  • 相关阅读:
    MySql相关
    RabbmitMQ 的配置及开启MQTT服务
    cmake 编译.so or .a文件很大问题
    模型上移动端遇到简单的问题:No variants found for 'app'
    第一次用go mod模式创建beego1.12的步骤
    python中RabbitMQ的使用hello world简单模式
    Ubuntu18.04 20.04安装rabbitMQ
    Django的mysqlclient报错
    《软件需求》读书笔记六
    《软件需求》读书笔记五
  • 原文地址:https://www.cnblogs.com/westwind/p/2514015.html
Copyright © 2011-2022 走看看