Python supports LSP, does it?

en.karpachov at ospaz.ru en.karpachov at ospaz.ru
Thu Aug 11 02:51:51 EDT 2005


On Thu, 11 Aug 2005 01:19:19 +0100
phil hunt wrote:

> According to Wikipedia, the Liskov substitution principle is:
> 
>   Let q(x) be a property provable about objects x of type T. Then 
>   q(y) should be true for objects y of type S where S is a subtype of T
> 
> To me, this is nonsense. Under this definition any subtype must 
> behave the same as its parent type, becausde if it doesn't there 
> will be some q(y) that are different to q(x).
> 
> But if it behaves the same, what's the point of having a subtype?

It does not behave the same, it has the same properties.

In other words, if there is some true assertion about _any_ object of type
x, then it's true about any object of type y, if y is derived from x.

Quick-and-dirty example: any object of type "list" is iterable, and it is true
as well for any object of some type derived from list.

-- 
jk



More information about the Python-list mailing list