Powiedziałbym, że wszystkie wartości są obiektami tak. Załóżmy, że zamiast instancji klasy transakcyjnej masz słownik {"nazwa transakcji": [123, "GBP", "12/12/12", 1234, "w"]}. Teraz ten słownik znów jest obiektem, a różnica polega na tym, że nie była to twoja własna klasa. W każdym razie wszystko jest przedmiotem. Fakt, że coś jest przedmiotem, nie powoduje, że staje się on przestrzenny, duży, wolny lub cokolwiek innego. Prawdopodobnie nadal będziesz potrzebował rozważenia na temat tych transakcji, ile z tych obiektów chcesz zachować w pamięci w określonym czasie?
To kwestia jasnego projektu kodu, moim zdaniem. Powiedzmy, że masz teraz książkę klasy, która ma metodę działania, akceptującą obiekty transakcji jako atrybut. Gdy ta metoda działania będzie wówczas używać właściwości obiektu, będzie to znacznie wyraźniejsze niż gdyby dotyczyło na przykład n-tego elementu listy.
Fakt, że jest klasą, daje także możliwość zmiany lub dodania funkcjonalności w przyszłości. Na przykład możesz dodać rejestrowanie wszystkich transakcji lub wycofać metodę w pewnym momencie.
Dobra odpowiedź i sposób, w jaki bym to zrobił. Jedyną alternatywą, jaką mogę sobie wyobrazić, jeśli niektóre pola byłyby rzadkie, byłby 'dict' (potencjalnie oszczędzający na' __slots__') –
@JonClements: struktura musiałaby być bardzo rzadka, by uzasadnić użycie 'dyktatu', ponieważ te przeważają przez duże kwoty (przynajmniej 1/3, jak sądzę). –
Yup - ale pomyślałem, że wrzucę to ze względu na kompletność. Biorąc pod uwagę przypadek użycia PO, twoja odpowiedź (przynajmniej dla mnie) jest poprawna i powinna zostać zaakceptowana. –