Python 类插槽
Python 类槽是一个没有多少程序员知道的特性。在一个有槽的类中,我们使用魔术字段名称 __slots__ 显式定义我们的类允许拥有的字段 .这有一些好处:
- 从类中创建的对象会占用更少的内存
- 访问类属性更快
- 你不能随机地给一个开槽类的对象添加新属性
下面是一个如何定义时隙类的例子:
>>> class Card:
... __slots__ = 'rank', 'suite'
... def __init__(self, rank, suite):
... self.rank = rank
... self.suite = suite
...
>>> qh = Card('queen', 'hearts') 对我来说,最大的优势是你不能随机添加新属性到一个开槽类。它可以防止代价高昂的错误!演示:将属性分配给开槽类时的拼写错误将引发错误,而不是 Python 默默地创建新属性。
对于没有复杂继承的小类,使用槽可能是一个优势。尤其是当您需要创建此类类的许多实例时,节省内存和更快的属性访问会产生影响。
最后,如您所知,您也可以将此技术与数据类结合使用!
Python