import director_detect class MyBar(director_detect.Bar): def __init__(self, val=2): director_detect.Bar.__init__(self) self.val = val def get_value(self): self.val = self.val + 1 return self.val def get_class(self): self.val = self.val + 1 return director_detect.A() def just_do_it(self): self.val = self.val + 1 def clone(self): return MyBar(self.val) pass b = MyBar() f = b.baseclass() v = f.get_value() a = f.get_class() f.just_do_it() c = b.clone() vc = c.get_value() if (v != 3) or (b.val != 5) or (vc != 6): raise RuntimeError, "Bad virtual detection"