Witam ponownie w sprawie mojego małego projektu z arkusza kalkulacyjnego.
Powiedzmy, że mam już arkusz trzymający komórki, jednak chciałabym móc wykonywać operacje na wierszach/kolumnach. Do tego chcę zastosować podklasę. (NumericCell to moja własna klasa)
Gdy wywołuję metodę dla klasy CellCollection wszystko działa, więc problem musi być gdzieś w dziedziczeniu.
Mam coś takiego:
class CellCollection:
def __init__(self, n=3):
self.n = n
initial = NumericCell(0)
self.cells = np.full((self.n, self.n), initial, dtype="object")
#... z jakimiś metodami...
#... ale jedną istotną - sliceuje mi arkusz, bym dostała porządany obiekt - gdy wywołuję fukcję działa sprawnie
def cut(self, shape, nr):
if shape == "ROW":
return self.cells[nr, :]
elif shape == "COLUMN":
return self.cells[:, nr]
# oraz wspomnianą podklasę:
class OneDimensionCollection(CellCollection):
# z jakiegos powodu wszystko jest typu NumericCell (dokładniej NumericCell(0)) (nawet po wczytaniu komórek) po wywołaniu self.object_
def __init__(self, shape, nr_of_shape):
super().__init__()
object_ = super().cut(shape, nr_of_shape)
self.object_ = object_
EXTRA PYTANKO:
Do tworzenia macierzy używam numpy i wypełniam array moimi obiektami. Program działa, jednak coś krzyczy. Powinnam się tym przejmować?
Expected type 'Union[int, float, complex, ndarray, Iterable]', got 'NumericCell' instead