你是否应该使用槽(Slots)?槽对你的类有何影响,以及何时以及如何使用它们
你是否应该使用槽?槽对类的影响以及何时如何使用它们
一行代码提高 20% 的性能?
Slots 是一种机制,允许您声明类属性并限制创建其他属性。您可以确定类具有哪些属性,防止开发人员动态添加新属性。这通常会导致 20% 的速度提升。
Slots 在具有已知属性集合的大量类实例的程序中特别有益。想象一下视频游戏或物理模拟;在这些情况下,您需要随时间追踪大量实体。
您可以通过添加一行代码将 slots 添加到您的类中,但这是否总是一个好主意?在本文中,我们将探讨使用 slots 如何使您的类更快以及何时使用它们。总体目标是更好地理解 Python 类的内部工作原理。让我们开始编码吧!
Slots 使 Python 类更快
通过使类使用 slots,您可以改善类的内存使用和性能。使用 slots 的类占用更少的内存并执行更快。
- “以独家20%折扣庆祝Devart的26周年生日,享受数据连接工具!”
- 使用这本免费电子书学习数据科学中的数据清洗和预处理技术
- 米开朗基罗的AI表兄弟:Neuralangelo是一个能够实现高保真度3D表面重建的AI模型[代码已包含]
如何使我的类使用 slots?
告诉 Python 让一个类使用 slots 非常简单。您只需添加一个特殊属性,称为 __slots__
,指定所有其他属性的名称:
class Person: first_name:str last_name:str age:int __slots__ = ['first_name', 'last_name', 'age'] # <-- 这里添加了 slots def __init__(self, first_name:str, last_name:str, age:int): self.first_name = first_name self.last_name = last_name self.age = age
在上面的类中,我们可以看到 Person
有三个属性: first_name
、last_name
和 age
。我们可以通过添加 __slots__
属性来告诉 Python 我们希望 Person
类使用 slots。这个属性必须指定所有其他属性的名称。