Wywyoływanie jednej klasy w drugiej

0

Robię coś w stylu bardzo uproszczonego arkusza kalkulacyjnego. Mam już napisane klasy komórek (Cell) i przechodzę do pisania klasy arkusza (CellCollection).
Chciałabym, by po stworzeniu komórek umieszczały się one w CellCollection w odpowiednim rzędzie i kolumnie (w odpowiednim miejscu w numpy array).

Muszę dodać tu jakieś dziedziczenie?

Umieszczam fragment kodu Cell (ma ona jeszcze kilka podklas)


class Cell:
    def __init__(self, location, content):
        self.location = location
        self.content = content

    def get_content(self):
        return self.content

#oraz jak wygląda konstruktor CellCollection:

class CellCollection:
    def __init__(self):
        self.cells = np.zeros((10, 10), dtype="object")

#Czyli żeby po wprowadzeniu

ordinary = Cell(location=(0, 0), content="shg")
```python

w wierszu 0 i kolumnie 0 macierzy wyświetlał się napis "shg".
0
Vendia napisał(a):

Muszę dodać tu jakieś dziedziczenie?

Dziedziczenie jest tylko jednym, i nie najważniejszym, ze środków programowani obiektowego.

nie sądzę

Vendia napisał(a):

Chciałabym, by po stworzeniu komórek umieszczały się one w CellCollection w odpowiednim rzędzie i kolumnie (w odpowiednim miejscu w numpy array).

Np ważna,ważniejszą niż dziedziczenie, zasadą jest zakres odpowiedzialności klasy. Nie widzi mi się, ze komórka odpowiada za swoją pozycję w arkuszu. Wręcz powinna nic/najmniej jak możliwe wiedzieć o arkuszu. Pewnie jakiś 'context' jest nieunikniony, ale jak najmnijej

To raczej arkusz odpowiada.

0

To jak powinnam "wprowadzić" komórkę do arkusza?
Czy w takim razie to źle, że u mnie komórka przechowuje swoją lokalizację?

0

@Vendia:

Komórka jest OK, że posiada liczby X,Y, tylko to jest naturalne.

Ale tylko arkusz wie, co z tym fantem zrobić, np on te dane inicjuje.
Dla ilustracji taki trudnbiejszy scenariusz: tylko arkusz wie, jak zamienić komórkę 7;3 na 7;3 (takie replace). Komórka nie powinna "wiedzieć", że ma kandydata na swoje miejsce.

3

Czemu komórka ma niby wiedzieć że ma pozycje w jakimś arkuszu? To arkusz wie że pod indeksem X,Y jest pewna komórka. Wyobraź sobie że chcesz mieć w tym programie nagle 2 arkusze! Co wtedy? :D To raczej nic dziwnego że masz jakiegoś Excela z kilkoma arkuszami. W jaki sposób to będzie działać u ciebie? ;) Moim zdaniem to arkusz powinien mieć jakąś mapę X,Y -> cell

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0