|
from random import randint |
|
import time |
|
|
|
class UhOh(Exception): |
|
pass |
|
|
|
class Hmm: |
|
def __init__(self): |
|
self.value = randint(-100, 100) |
|
|
|
def Yeah(self): |
|
if self.value == 0: |
|
return True |
|
else: |
|
raise UhOh() |
|
|
|
def Okay(): |
|
while True: |
|
yield Hmm() |
|
|
|
def keep_trying(go, first_try=True): |
|
maybe = next(go) |
|
try: |
|
if maybe.Yeah(): |
|
return maybe.value |
|
except UhOh: |
|
if first_try: |
|
print("Working...") |
|
print("Please wait patiently...") |
|
time.sleep(0.1) |
|
return keep_trying(go, first_try=False) |
|
|
|
if __name__ == "__main__": |
|
go = Okay() |
|
print(f"{keep_trying(go)}") |
|
|