2017-04-19 83 views
0

在python中使用插槽是一种好的pythonic技术,还是来自C语言家族的习惯?我听说他们提高了程序的性能并减少了内存消耗,特别是当创建了许多对象时。原则上讲,使用插槽可能会成为日常工作,因为几乎总是可以知道班级的属性是什么。那么我应该一直使用插槽吗?我应该什么时候准确使用插槽?在python中使用插槽是个好主意吗?

+3

只有在您认为需要创建大量批量(读取100,000秒)的此类对象时才使用插槽。否则,这似乎完全是不必要的。 –

+1

非常全面的答案在这里http://stackoverflow.com/a/28059785/532978 – JCOC611

+1

如果你想知道你是否应该使用插槽,不要使用插槽。如果你真的需要它,你会知道的。 – wim

回答

1

这里是'official' answer插槽 类内部的声明,通过预先声明的实例空间属性和消除例如字典可以节省内存,虽然流行,该技术是有点棘手得到正确的和最好保留对于内存关键型应用程序中存在大量实例的罕见情况。“

我相信对3.6中的CPython字典内部进行的更改将会使得__slots__的收益有所降低。

相关问题