Wpis z mikrobloga

Ćwiczę OOP w pythonie, które mam aktualnie na bardzo słabym poziomie. Chce zrobić taki mini koszyk, do którego będę dopisywał jakieś produkty, np. książki i ich cene i w klasie zrobić funkcje która będzie zwracała cenę wszystkich tych ksiażek i ich tytuły. Napisałem coś takiego ale nie wiem za bardzo jak dodać więcej książek, bo jak dopisuje cały czas do tej samej instancji to jest ciągle tam jedna. Tylko na takiej funkcjonalności klasy mi zależy, jest w ogóle sens robić to za pomocą OOP czy może z pomocą jakiegoś dict'a? Jeśli tak to przykład kodu?

https://pastebin.pl/view/b3f8cc65

#programowanie #informatyka #python
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Lawsuit: Nazwy klas pisz z wielkiej litery i w liczbie pojedynczej, a najlepiej po angielsku (np. class Book). Twój koszyk to będzie po prostu lista instancji tej klasy (np. books = [], new_book = Book(title, price) i books.append(new_book))
  • Odpowiedz
@Lawsuit: w tym wypadku tworzysz nowe książki i każdą nową instancję klasy, możesz stworzyć klasę koszyk i w niej budować dict z dodanymi książkami, ale na jednej instancji, wtedy napisać metodę na podsumowanie (suma cen), można też dodać metodę na zwracanie konkretnych pozycji
PS: Nazwy klasy z dużej litery (PEP8), no i najlepiej po angielsku
  • Odpowiedz
@Lawsuit: Spoko, tylko może to jakoś zweryfikuj bo sam się w sumie uczę :P działać na pewno zadziała, ale czy zgodne ze sztuką to nie wiem
  • Odpowiedz
@Lawsuit: Nie ma tam: bucket1 = Bucket()
Sorki, nie zauważyłem przy kopiowaniu. Co do reprezentacji obiektów to używaj _repr np.:
def
repr(self):
  • Odpowiedz
@Lawsuit: Dodałem Ci jeszcze jedną odpowiedź, dodałem sumowanie koszyka, ostrzegam że jest to zrobione tak aby działało, wolałbym list comprehesion i ładniej to ogólnie napisać
  • Odpowiedz