?

Log in

No account? Create an account
   Journal    Friends    Archive    Profile    Memories
 

Питоновые штучки - morfizm


Apr. 15th, 2018 05:11 am Питоновые штучки

Век живи, век учись.
Оказывается, если перекрываешь __eq__, то нужно перекрывать также и __ne__, автоматически, по крайней мере, в Python 2 это не делается.
Ну и, до кучи, надо __hash__ перекрывать.

https://hynek.me/articles/hashes-and-equality/

4 comments - Leave a commentPrevious Entry Share Next Entry

Comments:

From:dennyrolling
Date:April 16th, 2018 03:17 pm (UTC)
(Link)
ты не поверишь но в джаве если перекрываешь equals() то надо перекрыть и hashCode()

;)
From:morfizm
Date:April 19th, 2018 05:24 am (UTC)
(Link)
Ну, hashCode-то ладно, а вот not equals?!?
From:ovgolovin
Date:January 18th, 2019 01:57 am (UTC)
(Link)
В Питоне еще есть https://docs.python.org/3/library/functools.html#functools.total_ordering, который позволяет определить все операции сравнения через __lt__ и __eq__. Но да, тут нужен __lt__ помимо __eq__.
From:morfizm
Date:January 21st, 2019 11:49 am (UTC)
(Link)
Спасибо! Не знал