Why not just have a separate operator for matrix multiplication?
Unfortunately Python does not allow extension modules to define new operators, and there is no operator we can overload for this purpose. This is however the subject of PEP 225, which (if accepted) would add several operators to the Python language. A summary of a discussion of PEP 225’s relative merits at SciPy 2008 can be found in this archived post to the Python-dev mailing list.