forked from yashpatel5400/SexualEqualityABM
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Switch.py
33 lines (30 loc) · 1.45 KB
/
Switch.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#####################################################################
# Name: Yash Patel #
# File: Switch.py #
# Description: Simulates a switch statement in Python (multiple if/ #
# else branches). Note: source code was pulled from online source #
#####################################################################
class switch(object):
#################################################################
# Replicates the behavior of a switch statement (for clarity) #
#################################################################
def __init__(self, value):
self.value = value
self.fall = False
#################################################################
# Return the match method once, then stop #
#################################################################
def __iter__(self):
yield self.match
raise StopIteration
#################################################################
# Indicate whether or not to enter a case suite #
#################################################################
def match(self, *args):
if self.fall or not args:
return True
elif self.value in args: # changed for v1.5, see below
self.fall = True
return True
else:
return False