[Python-Dev] Inplace multiply by float (original) (raw)

Todd Miller jmiller@stsci.edu
Mon, 15 Apr 2002 17:54:07 -0400


This is a multi-part message in MIME format. --------------020100030200060800050708 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit

Hi,

Forgive me for asking this question again, but when I import the following from "example.py":

class test1(object): def init(self): object.init(self)

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

class test2: def imul(self, other): print "cool!"

t = test1() u = test2() t *= 1.0 u *= 1.0

The following happens:

Python 2.3a0 (#6, Apr 15 2002, 17:34:04) [GCC 2.96 20000731 (Red Hat Linux 7.1 2.96-98)] on linux2 Type "help", "copyright", "credits" or "license" for more information.

import example Traceback (most recent call last): File "", line 1, in ? File "example.py", line 18, in ? t *= 1.0 TypeError: can't multiply sequence to non-int

I take this to mean that python does not (currently) support inplace multiply by floats for new style classes. Is this a bug? A permanent limitation?

Regards, Todd

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

--------------020100030200060800050708 Content-Type: text/plain; name="example.py" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="example.py"

class test1(object): def init(self): object.init(self)

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

class test2: def imul(self, other): print "cool!"

t = test1() u = test2() t *= 1.0 u *= 1.0

--------------020100030200060800050708--