Velocity Reviews > Numeric array of objects

Numeric array of objects

beliavsky@aol.com
Guest
Posts: n/a

 03-03-2004
You create a 1-D Numeric array of n floats with

x = zeros(n,Float)

How do you create a Numeric array of n instances of class 'xy', where
for example xy is defined as follows:

class xy:
def __init__(self,x=0.0,y=0.0):
self.x = x
self.y = y

I want the elements of the array to be initialized to the default
value of xy, (0.0,0.0). I have read the Martelli's explanation on p309
of the book "Python in a Nutshell", but I still don't get it.

Larry Bates
Guest
Posts: n/a

 03-03-2004
What you want is n "instances" of the class xy.
Since __init__ method is called when an instance
is created, the instance.x and instance.y
attributes will be 0.0, 0.0 unless you set them
to something different (as arguments to the
instance creation).

class xy:
def __init__(self,x=0.0,y=0.0):
self.x = x
self.y = y

n=10
x=[xy() for j in range(10)]

after that

x[0].x equals 0.0
x[0].y equals 0.0
..
..
..
x[9].x equals 0.0
x[9].y equals 0.0

I "think" this is what you want, but I'm not certain.

-Larry

<(E-Mail Removed)> wrote in message
news:(E-Mail Removed) om...
> You create a 1-D Numeric array of n floats with
>
> x = zeros(n,Float)
>
> How do you create a Numeric array of n instances of class 'xy', where
> for example xy is defined as follows:
>
> class xy:
> def __init__(self,x=0.0,y=0.0):
> self.x = x
> self.y = y
>
> I want the elements of the array to be initialized to the default
> value of xy, (0.0,0.0). I have read the Martelli's explanation on p309
> of the book "Python in a Nutshell", but I still don't get it.

Josiah Carlson
Guest
Posts: n/a

 03-04-2004
> You create a 1-D Numeric array of n floats with
>
> x = zeros(n,Float)
>
> How do you create a Numeric array of n instances of class 'xy', where
> for example xy is defined as follows:
>
> class xy:
> def __init__(self,x=0.0,y=0.0):
> self.x = x
> self.y = y
>
> I want the elements of the array to be initialized to the default
> value of xy, (0.0,0.0). I have read the Martelli's explanation on p309
> of the book "Python in a Nutshell", but I still don't get it.

Numeric.array([xy() for i in xrange(n)], Numeric.PyObject)

- Josiah

John Hunter
Guest
Posts: n/a

 03-04-2004

> How do you create a Numeric array of n instances of class 'xy', where
> for example xy is defined as follows:

from Numeric import PyObject, array

class xy:
def __init__(self,x=0.0,y=0.0):
self.x = x
self.y = y

a = array([xy() for i in range(10)], typecode=PyObject)

JDH