创建大量对象时节省内存方法
一、 解决问题
程序要创建大量(可能上百万)的对象,导致占用很大的内存。
二、解决方案
重新–slots–属性
三、代码说明
#!/usr/bin/env python
class Date:
"""
当定义了__slots__属性时,
ython就会针对实例采用一种更加紧凑的内部表示,
不在让每个实例都创建一个__dict__字典。
实例通过一个很小的固定大小的数组来创建,
在__slots__中列出的属性名会在内部映射到这个数组的指定下标上。
但是,我们创建的实例属性就无法在添加新的属性了。
只能使用在__slots__中定义的那些属性名。
"""
__slots__ = ['year', 'month', 'day']
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
四、关联知识
五、总结
六、代码地址
github地址:https://github.com/weichen666/python_cookbooka>
目录/文件:eight_selection/learn_class_obj_slots.py