Python编程常用技巧,你全知道么?(11)

#1-> 1016

#2-> 888

当定义__slots__属性时 , Python使用固定大小的数组作为属性 , 而不用字典 , 这大大减少了每个实例所需的内存 。 当然使用__slots__也有缺点 , 比如 , 无法声明任何新属性 , 而且只能在__slots__上使用它们 , __slots__的类也不能使用多重继承 。

用lru_cache缓存函数调用

都说Python性能差 , 尤其是一些计算的时候 , 其实是有一些通用的方法可以解决程序能的问题 , 比如缓存和记忆术 。 使用functools中的lru_cache可以解决迭代计算中大量重复迭代调用问题:

# CacheInfo(hits=2 misses=4 maxsize=32 currsize=4)

在上例中 , 我们执行正在缓存的GET请求(最多3个缓存结果) 。 还使用cache_info方法检查函数的缓存信息 。 装饰器还提供了clear_cache方法 , 用于删除缓存 。

__all__控制import

推荐阅读