class Base: cls = "BASE" def do(self, var): return f"{self.cls} - {var}" class Sub1(Base): cls = "SUB1" def do(self, vars): return " + ".join(super().do(var) for var in vars) class Sub2(Base): cls = "SUB2" def do(self, vars): do = super().do return " + ".join(do(var) for var in vars) sub1 = Sub1() sub2 = Sub2() data = "alpha beta gamma delta".split() print(sub2.do(data)) print(sub1.do(data))