Re: problem with the 'math' module in 2.5?

2006-10-15 Thread andy2O
Chris wrote: sin(pi*0.5) is what I expected, but I expected to get 0 for sin(pi). Computers in general, and Python too, usually use floating point arithmetic in which all numbers are approximated by rational numbers of a particular form (see http://en.wikipedia.org/wiki/Floating_point for

Re: OO design question / Transform object in place?

2005-05-20 Thread andy2O
Dave Benjamin wrote: [EMAIL PROTECTED] wrote: Now suppose I set expression2 = Sum([a,-a]) and Sum.simplify() recognises that the two terms cancel and the Sum has value 0. Can I make expression2.simplify() transform expression2 from an instance of Sum to an instance of Number(0) **in

OO design question / Transform object in place?

2005-05-11 Thread andy2O
Hello comp.lang.py, Can you help me with ideas for the following (somewhat newbie) OO design question in Python? Note, I'm using psuedo-code, not actual Python for the examples! Background: --- I need to represent a small variety of mathematical constructs symbolically using Python

Re: (Newbie) Restricting inherited methods to operate on element from same subclass

2005-03-14 Thread andy2O
Bruno Desthuilliers wrote: You've already got the technical answer. About a possible design flaw, it would seem to me that restricting the join() operation on specific subclasses breaks the LSP. OTOH, Python being dynamically typed, inheritence is merely an implementation detail, so that may

(Newbie) Restricting inherited methods to operate on element from same subclass

2005-03-11 Thread andy2o
Hi all, Sorry if the post's title is confusing... I'll explain: I have a class, called A say, and N1 subclasses of A, called A1, A2, A3, ..., AN say. Instances of each subclass can sensibly be joined together with other instances of the *same subclass*. The syntax of the join method is

Re: (Newbie) Restricting inherited methods to operate on element from same subclass

2005-03-11 Thread andy2O
Assuming that A is a new-style class then if they have to be exactly the same type compare the types Ah-ha! I didn't know that. if the 'other' value can be a subclass of self: def join(self, other): if not isinstance(other, type(self)): raise whatever Simple and neat! If A