> it would appear that that the call to kernel() in right_kernel() uses > the version of kernel() defined for dense rational matrices (as > perhaps it should), and not the modified version of left_kernel() > nearby (as the code locally might suggest one to expect).
The issue is with the kernel = left_kernel line in the subclass. This is a known... "feature"... of Python. If you have: class A: def foo(): return "A" bar = foo class B(A): def foo(): return "B" Then B().foo() will return "B" but B().bar() will return "A". The bar = foo line is "early binding" -- it doesn't do what you expect with respect to inheritance. The solution? def kernel(...): return left_kernel(...). Shitty, but that's Python for you. Nick --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---