程序员,没事多练练,
并发,并行编程,算法,设计模式,
这三个方面的知识点,没事就要多练练,基本功呀。
class MyIterator: def __init__(self, element): self.element = element def __iter__(self): return self def __next__(self): if self.element: return self.element.pop(0) else: raise StopIterationitrtr = MyIterator([0, 1, 2, 3, 4])print(next(itrtr))print(next(itrtr))print(next(itrtr))print(next(itrtr))print(next(itrtr))print("===============")def my_generator(n): while n: n -= 1 yield nfor i in my_generator(3): print(i)print("===============")print(my_generator(5))g = my_generator(4)print(next(g))print(next(g))print(next(g))print(next(g))print("===============")def complain_about(substring): print('Please talk to me!') try: while True: text = (yield ) if substring in text: print('Oh no: I found a %s again!' % (substring)) except GeneratorExit: print('OK, ok: I am quitting.')c = complain_about('Ruby')next(c)c.send('Test data')c.send('Some more random text')c.send('Test data with Ruby somewhere in it')c.send('Stop complaining about Ruby or else!')c.close()print("===============")def coroutine(fn): def wrapper(*args, **kwargs): c = fn(*args, **kwargs) next(c) return c return wrapper@coroutinedef complain_about2(substring): print('Please talk to me!') while True: text = (yield ) if substring in text: print('Oh no: I found a %s again!' % (substring))c = complain_about2('JavaScript')c.send("hello")c.send("Test data with JavaScript")c.close()
输出:
==============================<generator object my_generator at 0x0000000002631BA0>===============Please talk to me!Oh no: I found a Ruby again!Oh no: I found a Ruby again!OK, ok: I am quitting.===============Please talk to me!Oh no: I found a JavaScript again!Process finished with exit code