Co wypisze program w języku Python?
class Koszyk:
produkty = []
def dodaj(self, p):
self.produkty.append(p)
a = Koszyk()
b = Koszyk()
a.dodaj("chleb")
print(len(b.produkty))Dlaczego tak
Lista produkty jest zdefiniowana w ciele klasy, więc jest polem klasy współdzielonym przez wszystkie obiekty, a nie osobnym polem każdego koszyka. Metoda append modyfikuje tę jedną wspólną listę, dlatego koszyk b też „widzi” chleb i wypisane jest 1. Aby każdy obiekt miał własną listę i wynik wynosił 0, pole trzeba utworzyć w konstruktorze: self.produkty = [] w metodzie __init__.