Author could have written
class Window(object): def __init__(self, min, max): if min > max: min, max = max, min self.min = min self.max = max
def __init__(self, a,b,c,d,e,f,...): for k, v in locals().items(): setattr(self, k, v)
class Window(object): def __init__(self, minimum, maximum): self.minimum = min(minimum, maximum) self.maximum = max(minimum, maximum)
class Window(object): def __init__(self, minimum, maximum): self.min_func = min self.max_func = max self.tuple_type = tuple self.minimum = minimum self.maximum = maximum self.minimum, self.maximum = self.tuple_type([self.min_func(*self.tuple_type([self.minimum, self.maximum])), self.max_func(*self.tuple_type([self.minimum, self.maximum]))]) def __call__(self, x): self.x = x result = self.minimum <= self.x <= self.maximum del self.x return result
Author could have written
to avoid repetition. If many args are needed, Etc etc there are endless idiomatic ways to avoid boilerplate in Python