擅长:python、mysql、java
<p>替代函数的另一种方法是使用一个无限迭代器(比如<code>itertools.cycle</code>),加载所有要循环的形状。当你想要下一个形状时,你的程序只需要请求它,改变海龟,然后继续它以前做的任何事情。以下程序演示了如何执行此操作:</p>
<pre><code>import itertools
import turtle
def main():
canvas = turtle.Screen()
t = turtle.Turtle()
# noinspection PyProtectedMember
shapes = itertools.cycle(sorted(canvas._shapes.keys()))
t.shape(next(shapes))
canvas.onkey(lambda: t.shape(next(shapes)), 'n')
canvas.listen()
canvas.mainloop()
if __name__ == '__main__':
main()
</code></pre>