I have encountered a problem when putting all the modules I\'ve developed into the main program. The switch dictionary I\'ve created can be seen below:
def T
As noted, the functions will get invoked during dictionary construction. Besides that, there's two other issues I see here:
switcher during every invocation of the function Tank_Shape_Calcs, this generally isn't a good idea. *args :-) If my understanding of what you're up to is correct, I'd move switcher outside the function, as a Tank_Shape to function object mapping:
switcher = {
0: vertical.Vertical_Tank,
1: horiz.Horiz_Cylinder_Dished_Ends,
2: strapping.Calc_Strapped_Volume,
3: poly.Fifth_Poly_Calcs
}
Then, define Tank_Shape_Calcs to take the excess arguments as a tuple with *args:
def Tank_Shape_Calcs(Tank_Shape, *args):
return switcher.get(Tank_Shape, lambda *_: "ERROR: Tank type not valid")(*args)
and invoke your function after .getting it.
This also plays off Jean's trick to define a lambda in .get but does so with *_ in order to allow it to get called with many args (which are consequently ignored).