2.7 del ()方法 del ()方法有一个让人费解的使用场景。 这个方法的目的是在将一个对象从内存中清除之前,可以有机会做一些清理工作。如果使用上下文管理对象或者with语句来处理这种需求会更加清晰,这也是第5章“可调用对象和上下文的使用”的内容。对于Python的垃圾回收机制而言,创建一个上下文比使用del ()更加容易预判。 但是,如果一个...
5.3 使用functools完成记忆化 Python库的functools模块中包含了记忆化的装饰器。可以重用这个模块而不必新建自己的可调用对象。 可像如下代码这样使用。 from functools import lru_cache@lru_cache(None)def pow6( x, n ): if n == 0: return 1 ...
6.2 特殊方法示例 通过观察21点中的Hand对象,会发现有一个很有趣的关于包含关系的例子。我们常常会想知道玩家的手中是否有ace。如果我们用扩展list的方式来定义Hand,那么我们就不能直接查询是否有ace。取而代之的是,我们只能查询某张牌。我们不想写类似下面这样的代码。 any( card(1,suit) for suit in Suits )...