Я хочу определить класс для представления матрицы
class matrix:
def __init__(self, mat):
self.mat = mat
self.dim = len(mat)
@classmethod
def withDim(matrix, dimension):
mat = [ [0]*dimension for i in range(dimension)]
return matrix(mat)
, где mat
- список списков, поэтому для представления матрицы
A = | a b |
| c d |
я могу написать следующее
A = matrix( [ [a, b], [c, d] ])
Я также начал определять некоторые операторы, например
def __add__(self, other):
n = self.dim
result = self.withDim(n)
for i in range(n):
for j in range(n):
result.mat[i][j] = self.mat[i][j] + other.mat[i][j]
return result
Теперь, если я хочу получить доступ к элементу i, j
в матрице A
, мне нужно сделать
A.mat[i][j]
Вопрос в том, могу ли я определить оператор [ ]
, чтобы сделать
A[i][j]
, как я определил __add__
?