1. 内置属性_slots__:
- 限制对象属性,在类定义中定义__slots__会覆盖默认__dict__行为, 可以对实例的对象进行限制.
- 默认情况下,类的实例有一个字典用于存储属性,这对于具有很少实例变量的对象会浪费空间。
- 当创建大量实例时,空间消耗可能会变得尖锐;可以通过在类定义中定义__slots__来覆盖默认__dict__行为。
- slots 声明接受一个变量序列,并在每一个实例中保留足够保存每个变量值的空间,因为没有为每个实例创建 dict ,所以节省空间
class MyClass:
__slots__ = ['name'] # slots 里面定义了属性name,那么就只能定义name属性
def __init__(self, name):
self.name = name
# self.age = age
# res=MyClass()
# res.name = "cherry"
# print(res.name)
res = MyClass(name="ss")
print(res.name)