__slots__优化对象内存

"""
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

 

上一篇:84 python高级 - __slots__


下一篇:安装zookeeper