cimport cython @cython.final cdef class FinalClass: """ >>> f = FinalClass() >>> test_final_class(f) Type tested >>> try: ... class SubType(FinalClass): pass ... except TypeError: ... print('PASSED!') PASSED! """ cdef class NonFinalClass: """ >>> class SubType(NonFinalClass): pass >>> s = SubType() """ @cython.final cdef class FinalSubClass(NonFinalClass): """ >>> f = FinalSubClass() >>> test_non_final_class(f) Type tested >>> try: ... class SubType(FinalSubClass): pass ... except TypeError: ... print('PASSED!') PASSED! """ def test_final_class(FinalClass c): print u"Type tested" def test_non_final_class(NonFinalClass c): print u"Type tested"