gpt4 book ai didi

python - 使用 __slots__ 有缺点吗?

转载 作者:太空宇宙 更新时间:2023-11-04 04:14:09 24 4
gpt4 key购买 nike

我正在使用 Python 3.7 和 Django。我正在阅读 __slots__ .显然,__slots__ 可用于通过提前列出所有对象属性来优化大量此类对象的内存分配。

class MyClass(object):
__slots__ = ['name', 'identifier']
def __init__(self, name, identifier):
self.name = name
self.identifier = identifier
self.set_up()

我可能很明显的问题是为什么我们不想对所有对象都这样做?使用 __slots__ 有缺点吗?

最佳答案

Fluent Python Luciano Ramalho 列出了以下注意事项

• You must remember to redeclare __slots__ in each subclass, since the inherited attribute is ignored by the interpreter.

• Instances will only be able to have the attributes listed in __slots__, unless you include __dict__ in __slots__ — but doing so may negate the memory savings.

• Instances cannot be targets of weak references unless you remember to include __weakref__ in __slots__.

关于python - 使用 __slots__ 有缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55767040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com