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