Я обычно использую SQLAlchemy. Это довольно мощно и является, вероятно, самым зрелым Python ORM.
, Если Вы - планирование использования CherryPy, Вы могли бы также изучить dejavu, как это Robert Brewer (парень, который является текущим руководителем проекта CherryPy). Я лично не использовал его, но я действительно знаю некоторых людей, которые любят его.
SQLObject немного легче использовать ORM, чем SQLAlchemy, но это не совсем как мощное.
Лично, я не использовал бы Django ORM, если я не был планированием записи всего проекта в Django, но это - просто я.
Я согласен, что это была в основном ошибка как в .NET, так и в Java. То же самое верно для GetHashCode
- наряду с каждым объектом, имеющим монитор.
Это сделало бит больше смысла перед дженериками, правда, - но с дженериками, переопределяющими Равно (объект)
всегда кажется довольно ужасным.
Я писал об этом некоторое время назад - вы можете найти как сообщение, так и комментарии.
Вы забыли опцию 4. Ничего не делать, пусть имеет место равенство ссылок по умолчанию. Ничего страшного, ИМО. Даже с вашими пользовательскими параметрами соответствия вы можете выбрать вариант по умолчанию (я бы выбрал самый строгий вариант) и использовать его для реализации Equals ().