[Python-Dev] In-place multiply and new style classes
Todd Miller
jmiller@stsci.edu
Wed, 27 Mar 2002 13:34:17 -0500
Hi,
I'm Todd Miller and I work at the Space Telescope Science Institute on
Numarray.
Numarray is STSCI's stab at improving Numeric. This is my first post here.
Today one of the guys in my branch noticed that Numarray's in-place
multiply was
raising this bizarre exception:
--> a = ones ((5,), Float32)
--> a
array([1., 1., 1., 1., 1.], type=Float32)
--> a *= 62.
Traceback (innermost last):
File "<console>", line 1, in ?
TypeError: can't multiply sequence to non-int
I looked into this for a couple hours and discovered the following:
class test1(object):
"""A new-style class"""
def __init__(self):
pass
def __imul__(self, other):
print "no luck here!"
>>> t1 = test1()
>>> t1 *= 62.
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: can't multiply sequence to non-int
Todd
--
Todd Miller jmiller@stsci.edu
STSCI / SSG (410) 338 4576