I have some class instances that I pickle using `__reduce__`. These classes have members that I collect in another array. I need to pickle this array, but I can't find the right way to do it.
Just to clarify things, imagine I have classes that represent square, rectangle and circle. I create some instances:

```
A=Square(10)
B=Rectangle(5,10)
C=Circle(6)

```

I can pickle the list 

```
classes=[A, B, C] 

```

but I need a way to pickle this array of the class instances properties

```
dimensions=[A.side, B.y, C.diameter]

```

keeping the reference to the original objects so that if one object changes the relative property changes: imagine I call `C.grow(2)` I expect to have `dimensions[2]=12`.

To solve the problem I now pickle this dictionary:

```
d={   classes: [A, B, C],
   dimensions: [(A,'side'), (B,'y'), (C,'diameter')] }

```

but I think this is a very poor solution.

I appreciate any suggestion.