Форум сайта python.su
Такой вот интересный вопрос возник, врядли в доках о таком пишут, но все же…. Речь идет о сравнении объектов.
Делаем раз:
test1 = Class.objects.get(<условие1>)
test2 = Class.objects.get(<условие1>)
test1=test2
>>> True
Отредактировано (Ноя. 12, 2009 10:18:25)
Офлайн
lorienНе уж, увольте
Ну, это вы скорее описываете is, а не == сравнение.
>>> class A:
... x=1
...
>>> a = A()
>>> b = A()
>>> a==b
False
>>> a is b
False
.............
>>> c=a
>>> c==a
True
>>> b==a
False
>>> b==c
False
>>>
Отредактировано (Ноя. 12, 2009 13:50:08)
Офлайн
lorienСовершенно верно, мне как раз и было интересно, как разработчики джанго переопределили этот метод для класса Model, ведь по умолчанию, одинаковые, выдранные из базы объекты (если бы метод __eq__ не был бы определен, а по умолчанию object этого метода не имеет), при сравнении:
ибо == - это __eq__ и ей нет дела до ссылок, как её определили, так она и будет работать.
ob1==ob2
Офлайн