我正在编写一个矩阵类,并希望将同一类的方法放入属性类中
class Matrix:
def __init__(
self,
rows: int=None,
columns: int=None,
values: list[int | float | list[int | float]]=None
) -> None:
self.__rows = 3 if not rows else (3 if rows <= 0 else rows)
self.__columns = 3 if not columns else (3 if columns <= 0 else columns)
self.__values = [
[
random.randint(-10, 10)
for _ in range(self.__columns)
]
for _ in range(self.__rows)
] if not values and self.__rows != 1 \
else [
random.randint(-10, 10)
for _ in range(self.get_columns)
] if self.__rows == 1 else values
self.T = self.__transposition()
def __transposition(self) -> typing.Self:
return Matrix(
self.__columns,
self.__rows,
[
[
self.__values[j][i]
for j in range(self.__rows)
]
for i in range(self.__columns)
]
)
if name == 'main':
a = Matrix(rows=2)
print(a.T)
但有深度递归
File "Matrix.py", line 25, in __init__
self.T = self.__transposition()
^^^^^^^^^^^^^^^^^^^^^^
File "Matrix.py", line 47, in __transposition
return Matrix(
^^^^^^^
RecursionError: maximum recursion depth exceeded
可以做什么?我尝试通过静态方法装饰器运行它,但没有任何效果。