I\'m looking for a better way to call functions based on a variable in Python vs using if/else statements like below. Each status code has a corresponding function
assuming that these functions belong to some module:
import module
return getattr(module, status.lower()).__call__(*args, **kwargs)
The canonical way to do this is to use a dictionary to emulate switch
or if/elif
. You will find several questions to similar problems here on SO.
Put your functions into a dictionary with your status codes as keys:
funcs = {
'CONNECT': connect,
'RAWFEED': rawfeed,
'RAWCONFIG' : rawconfig,
'TESTFEED': testfeed
}
funcs[status](*args, **kwargs)