"""
slots:原理,给对象声明只有某些属性,从而删除不必要的内存,不能添加新属性
1.优化对象内存
2.限制属性数量
"""
1.#__slots__案例:
# slots使用 import sys class Person: __slots__ = ['name'] # 声明名称空间只有name属性 def __init__(self, name): self.name = name
p = Person('jeff') print(sys.getsizeof(p))
#结果:48 #####内存减少了8
2.迭代协议
class MyIter: """num传入 用来指定迭代次数 """ def __init__(self, num): self.num = num self.c = 0 # 迭代 def __iter__(self): return self # 取值 def __next__(self): self.c += 1 if self.c <= self.num: return "jeff" else: raise StopIteration # 循环取值 for i in MyIter(10): print(i)
#结果:打印10遍jeff