Как мне обработать несколько утверждений в одном тесте Python?

Классы классов

идеально подходят для объектов значений, то есть объектов, которые не меняют никаких свойств и могут сравниваться с равными.

Но реализация equals в присутствии наследования довольно сложна. Рассмотрим два класса:

class Point(x : Int, y : Int)

и

class ColoredPoint( x : Int, y : Int, c : Color) extends Point

Таким образом, согласно определению ColorPoint (1,4, красный) должен быть равен Точке (1,4 ) они в то же время суть. Таким образом, ColorPoint (1,4, синий) также должен быть равен Point (1,4), правильно? Но, конечно, ColorPoint (1,4, красный) не должен совпадать с ColorPoint (1,4, синий), потому что они имеют разные цвета. Там вы идете, одно основное свойство отношения равенства сломано.

update

Вы можете использовать наследование от признаков, решающих множество проблем, как описано в другом ответе. Еще более гибкой альтернативой часто является использование классов типов. См. . Каковы классы типов в Scala, которые полезны для? или http://www.youtube.com/watch?v=sVMES4RZF-8

13
задан Eric Anderton 22 March 2012 в 19:40
поделиться