数智图书馆-无锡数智政务 本次搜索耗时 3.241 秒,为您找到 563 个相关结果.
  • 空标题文档

    7.2 算术运算符的特殊方法 一共有13个二进制运算符以及相关的特殊方法。先关注一些常用的算术运算符。如下面表格所示,每个特殊方法名对应一个各自的运算符(函数)。 方法 运算符 object. add (self, other) + object. sub (self, other) - object. mul ...
  • 空标题文档

    7.4 计算一个数字的哈希值 我们需要恰当地定义hash ()方法。关于数值类型哈希值计算,也可参见Python标准库(Python Standard Library)中的4.4.4节部分。那部分定义了一个hash_fraction()函数,是我们所推荐的一种做法。下面是我们的一种做法。   def hash ( self ):     P = sy...
  • 空标题文档

    第8章 装饰器和mixin——横切方面 一个软件的设计通常会包括一些跨越了不同的类、函数和方法的方面。有关技术方面的例子,包括日志、设计和安全,这些方面必须有一致地实现。在面向对象编程中,重用功能的通用方法是继承一个类。但是,继承并不总是最合适的方案。在软件设计中,有一些方面和类层次结构是正交的。这些通常被称为“横切关注点”(cross-cutting ...
  • 空标题文档

    8.2 使用内置的装饰器 Python语言内置了一些装饰器。@property、@classmethod和@staticmethod装饰器用于标注类的方法。@property装饰器将一个方法函数转换成描述器。我们用这种简单属性语法来定义方法函数。当将@property装饰器用于方法上时,也会额外创建一对属性,它们可以用于创建setter和deleter属...
  • 空标题文档

    第9章 序列化和保存——JSON、YAML、Pickle、CSV和XML 为了存储Python中的对象,必须先将其转换为字节,然后再将字节写入文件。这个过程称为序列化,又叫作数据转换(marshaling)、压缩(deflating)或编码(encoding)。接下来我们会介绍几种将一个Python对象转换为字符串或字节流的方式。 每种序列化方式又称为...
  • 空标题文档

    9.2 文件系统和网络的考虑 因为OS文件系统(和网络)是以字节的形式工作的,所以需要将一个对象实例变量的值表达为一个序列化的字节流。经常会使用两个步骤来将对象转换为字节,先将一个对象的状态以字符串的形式表示,然后使用Python字符串中的标准编码来进行字节转换。使用Python中内置的字符串编码功能处理这种问题很简便。 当把视线移至OS文件系统上时,...
  • 空标题文档

    9.3 定义用于持久化的类 在开始进行持久化之前,需要先获得要保存的对象。关于持久化的设计有几个要点需要考虑,将以一个简单的类定义为起始。我们将看一个简单的博客和上面所发布的文章,以下是一个Post类的定义。 import datetimeclass Post:   def init ( self, date, title, rst_text, tag...
  • 空标题文档

    11.6 添加ORM层 有许多有关Python的ORM项目,从https://wiki.python.org/moin/HigherLevelDatabase Programming 可以找到一个列表。 我们会选择其中的一个作为例子,这时我们选择 SQLAlchemy,因为它提供给我们许多功能而且它的使用相对广泛。正如其他事物一样,没有最好的选择...
  • 空标题文档

    第15章 可测试性的设计 高质量的程序必须写自动化测试,需要尽最大的努力来确保软件是工作的。黄金法则是为了可交付性,功能必须包含单元测试。 没有自动化测试的情况下,功能就不能被确保是工作的并且不应该被使用。正如Kent Beck在极限编程中所提到的:“任何没有经过自动测试的功能就等于不存在的功能”。 关于程序功能的自动化测试,有两个基本点。 自动...
  • 空标题文档

    16.9 总结 我们介绍了如何使用argparse和os.environ来获取命令行参数和配置参数。这是基于第13章“配置文件和持久化”中介绍的技术创建的。 我们可以用argparse实现许多通用的命令行功能。这包含通用功能,例如显示版本号并退出或者显示帮助文本并退出。 我们介绍了用命令设计模式创建可以通过扩展或重构来添加功能的应用程序。我们的目标是...