Вход | Регистрация

Трета задача

  • Виждам, че много колеги, както и аз хвърляме GeometricError вместо да връщаме False при сравнение на геометричен обект с нещо друго. В задачата не беше дефинирано какво да се прави при такова сравнение, но беше казано, че хвърляме Exception при всяко недефинирано поведение. Това не е ли леко противоречие?

    15.05.2010
  • В лекцията за TDD Стефан написа част от това домашното и отдели специално внимание на този случай.

    Сравнението с == трябва да връща False, ако обектите не могат да бъдат сравнявани, а не да хвърля изключение. Ако се замислиш това е поведението на всички обекти, с които си се сблъсквал в Питон.
    Това е и поведението на методите Equals/equals в .Net/Java, между другото.

    Хвърлянето на изключения в оператор == би счупило доста неща. В момента се сещам за търсенето на ключове на речникови колекции, но вероятно има още примери.

    В обобщение - "не", няма противоречие в условието. Просто има тънък момент.

    22.05.2010 (променeно 22.05.2010)