【发布时间】:2016-08-29 08:22:37
【问题描述】:
class Player:
# __slots__ = ['name','age','gsnum']
def __init__(self,name,age,gsnum):
self.name = name
self.age = age
self.gsnum = gsnum
我定义了这个类,具有三个属性
使用__slots__节省内存时:
我得到 36 个实例 (sys.getsizeof())
如果不使用__slots__,
我仍然得到 36 作为内存大小,
这里有什么问题? 32位Python 2.7
【问题讨论】:
-
您好像注释掉了 slot 声明。
-
在我的机器上使用
__slots__作为这个例子增加内存使用。 -
内存真的有问题吗?请注意,由于引入 PEP 412 实例的 python3.3 能够共享其
dicts 的一部分,因此每个实例的dicts 开销显着减少。 -
@Bakuriu 谢谢,我不知道。嗯,我只是想起来了,我也觉得没什么大不了,但结果却相反
标签: python python-2.7 slots