2019-9-10 每日学习
如何减少由大量实例造成的代码内存占用巨大
我们可以使用__slots__方法来减少创建,调用实例时使用的内存
新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
class Date:
__slots__ = {'year','mouth','day'}
def __init__(self,year,mouth,day):
self.year=year
self.mouth=mouth
self.day=day
当定义了__slots__属性时,python将会采用一种更为紧凑的内部表示方法,不在为每个实例都创建一个dict,而是围绕实例创建一个固定长度的小型数组,其与元祖和列表较为相似。索引将会有固定的映射。
一般来说__slots__方法只用于创建数据结构的的实例中,大部分其他代码应该避免使用__slots__属性,因为具有此属性的实例无法实现多重继承等常用逻辑。且如果使用了此属性,用户将无法自己为实例新建属性,仅可使用__slots__中定义好的属性。