* 3.9_12 add eq, ne
This commit is contained in:
parent
102e8ce6bd
commit
b34a6842aa
@ -67,6 +67,13 @@ P.S. В программе нужно объявить только класс.
|
|||||||
---
|
---
|
||||||
>>> Matrix(2, 2) - 2
|
>>> Matrix(2, 2) - 2
|
||||||
Matrix([[-2, -2], [-2, -2]])
|
Matrix([[-2, -2], [-2, -2]])
|
||||||
|
|
||||||
|
>>> Matrix(2, 2) == Matrix([[0, 0], [0, 0]])
|
||||||
|
True
|
||||||
|
>>> Matrix(2, 2, 2) == [[2, 2], [2, 2]]
|
||||||
|
True
|
||||||
|
>>> Matrix(2, 2, 2) == [[2, -2], [2, 2]]
|
||||||
|
False
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from functools import singledispatchmethod
|
from functools import singledispatchmethod
|
||||||
@ -146,18 +153,6 @@ class Matrix:
|
|||||||
new_row.append(value)
|
new_row.append(value)
|
||||||
self.data.append(new_row)
|
self.data.append(new_row)
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return f"{self.__class__.__name__}({self.data!r})"
|
|
||||||
|
|
||||||
def __len__(self):
|
|
||||||
return self.rows
|
|
||||||
|
|
||||||
def __iter__(self):
|
|
||||||
return (
|
|
||||||
(self.cells[row][col].data for col in range(self.cols))
|
|
||||||
for row in range(self.rows)
|
|
||||||
)
|
|
||||||
|
|
||||||
def validate_index(self, index):
|
def validate_index(self, index):
|
||||||
if not isinstance(index, tuple):
|
if not isinstance(index, tuple):
|
||||||
raise IndexError("недопустимые значения индексов")
|
raise IndexError("недопустимые значения индексов")
|
||||||
@ -204,6 +199,28 @@ class Matrix:
|
|||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def __len__(self):
|
||||||
|
return self.rows
|
||||||
|
|
||||||
|
def __iter__(self):
|
||||||
|
return (
|
||||||
|
(self.cells[row][col].data for col in range(self.cols))
|
||||||
|
for row in range(self.rows)
|
||||||
|
)
|
||||||
|
|
||||||
|
def __eq__(self, other):
|
||||||
|
if isinstance(other, self.__class__):
|
||||||
|
return self.data == other.data
|
||||||
|
if isinstance(other, list):
|
||||||
|
return self.data == other
|
||||||
|
return NotImplemented
|
||||||
|
|
||||||
|
def __ne__(self, other):
|
||||||
|
return not self == other
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return f"{self.__class__.__name__}({self.data!r})"
|
||||||
|
|
||||||
|
|
||||||
def tests():
|
def tests():
|
||||||
# 10x = https://stepik.org/lesson/701994/step/12?discussion=5990560&unit=702095
|
# 10x = https://stepik.org/lesson/701994/step/12?discussion=5990560&unit=702095
|
||||||
|
Loading…
Reference in New Issue
Block a user