import timeit from abc import ABC, abstractmethod class A(ABC): @abstractmethod def a(self): ... class B(A): def a(self): return 1 class C: def a(self): return 1 def test_abc(): b = B() b.a() def test_no_abc(): c = C() c.a() NUM_RUNS = 10 ** 7 abc_time = timeit.Timer(test_abc).timeit(number=NUM_RUNS) no_abc_time = timeit.Timer(test_no_abc).timeit(number=NUM_RUNS) print(f'w/ ABC: {abc_time:.2}') print(f'w/o ABC: {no_abc_time:.2}')