2010-01-11 13 views

Odpowiedz

13

Tak, pod warunkiem, że zdefiniujesz również zgodnie z tym __eq__ (i prawdopodobnie __ne__!). IOW, wszystko w porządku, o ile wszystko jest w porządku z a==b co oznacza dokładnie to samo co a is b! -)

+1

Dzięki. Twoje drugie zdanie wyjaśnia to całkiem dobrze. –

6

Dla większości klas Pythona jest to domyślne zachowanie. Nieusuwalne są nieuszkodzone z dobrego powodu: są zmiennymi kolekcjami.

Dla kolekcji praktycznym jest posiadanie relacji równości (zdefiniowanej przez __eq__()) na podstawie równości ich zawartości. To i wymaganie, aby było zgodne z równością, spowodowałoby oczywiście zmianę, która byłaby okropna dla kolekcji zawierających takie obiekty.

Możesz to zrobić, ale kosztuje to opartą na treści relację równości.

Powiązane problemy