[Python-Dev] In-place multiply and new style classes

Todd Miller jmiller@stsci.edu
Wed, 27 Mar 2002 16:05:02 -0500


  Martin v. Loewis wrote:

>Todd Miller <jmiller@stsci.edu> <mailto:jmiller@stsci.edu> writes:
>
>>TypeError: can't multiply sequence to non-int
>>
>
>It seems that this has been fixed in the CVS.
>
>Regards,
>Martin
>
I updated to the head and I still get:

>
class test1(object):
    def __init__(self):
        pass

    def __imul__(self, other):
        print "no luck here!"

Python 2.3a0 (#3, Mar 27 2002, 15:27:32)
[GCC 2.96 20000731 (Red Hat Linux 7.1 2.96-98)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

 >>> t = test1()

 >>> t *= 1
no luck here!

 >>> t *= 1.
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: unsupported operand type(s) for *=: 'NoneType' and 'float'

The latter is still a problem for me because Numarray needs to implement
both sequence and number protocols, and wants the number protocol to
dominate *=.  What I think I see happening in both cases is the sequence
protocol executing.   Sorry if this is an old issue...

Todd

-- 
Todd Miller 			jmiller@stsci.edu <mailto:jmiller@stsci.edu>
STSCI / SSG			(410) 338 4576