在《流畅的python》中看到的程序在控制台上显示一个小动画:旋转指针。通过按顺序写入字符"|/-",让其看起来就像是字符在旋转一样。在此记录一下。作者用写了两个版本,线程版和协程版。这里贴出线程版。点击github访问
# BEGIN SPINNER_THREAD
import threading
import itertools
import time
import sys
class Signal: # <1>
go = True
def spin(msg, signal): # <2>
write, flush = sys.stdout.write, sys.stdout.flush
for char in itertools.cycle('|/-\\'): # <3>
status = char + ' ' + msg
write(status)
flush()
time.sleep(.1)
write('\x08' * len(status)) # <4>
if not signal.go:
break
write(' ' * len(status) + '\x08' * len(status)) # <6>
def slow_function(): # <7>
# pretend waiting a long time for I/O
time.sleep(3) # <8>
return 42
def supervisor()