PYTHON
43
default switch
Guest on 16th June 2022 01:41:07 AM
#!/usr/bin/env python3
# This switch statements supports default cases aswell
class switch():
def __init__(self, key):
self.key = key
self.matchFound = False
self.defaultCase = None
def __enter__(self):
return self.case
def __exit__(self, exc_type, exc_val, exc_tb):
if not self.matchFound and self.defaultCase:
self.defaultCase()
def case(self, key = None):
def decorator(func):
if self.key == key:
func()
self.matchFound = True
elif key == None:
self.defaultCase = func
return func
return decorator
for key in range(1, 101):
with switch(key % 15) as case:
@case(5)
@case(10)
def five():
print("Buzz")
@case(3)
@case(6)
@case(9)
@case(12)
def three():
print("Fizz")
@case(0)
def both():
print("Fizzuzz")
@case()
def default():
print(key)