Path: blob/master/公开课/年薪50W+的Python程序员如何写代码/code/Python/opencourse/part04/example.py
3078 views
import cProfile123# @profile4def is_prime(num):5for factor in range(2, int(num ** 0.5) + 1):6if num % factor == 0:7return False8return True91011class PrimeIter:1213def __init__(self, total):14self.counter = 015self.current = 116self.total = total1718def __iter__(self):19return self2021def __next__(self):22if self.counter < self.total:23self.current += 124while not is_prime(self.current):25self.current += 126self.counter += 127return self.current28raise StopIteration()293031@profile32def eat_memory():33items = []34for _ in range(1000000):35items.append(object())36return items373839def main():40eat_memory()41# list(PrimeIter(1000))42# cProfile.run('list(PrimeIter(10000))')434445if __name__ == '__main__':46main()474849