0

Hello there, again!

Well, once I solved the stupid bug I had in my first Python class ever, now I'm getting results I wasn't expecting.

The problem is: I instantiated two objects of this class but, apparently, one of the objects is just a copy of the other. And if I instantiate a third object (all different names), this one is also a copy of the first.

How come?

Please, could anyone tell me what's the catch?

What am I doing wrong?

Please see below the class and the test program:

```
# Square matrix
import random
class Matriz:
"""Math operations with matrixes"""
matriz = []
grau_matriz = 0;
def __init__ (self, grau_matriz, inicio):
self.grau_matriz = grau_matriz
#Decides if array will be populated with 0's or random numbers
if inicio == 0:
self.zero()
elif inicio == 1:
self.aleatoria()
def zero(self):
"""This method generates a N X N array with zeroes"""
for i in range(self.grau_matriz):
linha = []
for j in range(self.grau_matriz):
linha.append(0)
self.matriz.append(linha)
def aleatoria(self):
"""This method generates a N X N array with random values"""
for i in range(self.grau_matriz):
linha = []
for j in range(self.grau_matriz):
linha.append(random.randrange( 1, 10 ))
self.matriz.append(linha)
def show(self):
"""This method prints the array as an N x N format"""
for i in range(self.grau_matriz):
for j in range(self.grau_matriz):
print "%2d " % self.matriz[i][j],
print
print
```

And the test program...

```
# Uses Matriz class
from Matriz import Matriz
matrix_a = Matriz(3,1)
matrix_b = Matriz(3,0)
matrix_c = Matriz(3,1)
matrix_a.show()
print
matrix_b.show()
print
matrix_c.show()
```