[Tutor] Should this be a list comprehension or something?

Karl Pflästerer sigurd at 12move.de
Wed Jan 26 11:53:02 CET 2005


On 26 Jan 2005, carroll at tjc.com wrote:

> The following Python code works correctly; but I can't help but wonder if 
> my for loop is better implemented as something else: a list comprehension 
> or something else more Pythonic.

[Code]
>
> --------------------
> w1 = Water(50,0)
> w2 = Water(50,100)
> w3 = Water(25,50)
>
> print CombineWater((w1,w2,w3))
> --------------------
>
> prints, as expected: 125.00, 50.00

What about overloading »+«?

class Water(object):
    def __init__(self, mass, temp):
        self.mass = mass
        self.temp = temp
    def __repr__(self):
        return ("%.2f, %.2f" % (self.mass, self.temp))
    def __add__(self, other):
        m = self.mass + other.mass
        return Water(m, (self.mass*self.temp + other.mass*other.temp)/m)

.>>> w1 = Water(50,0)
.>>> w2 = Water(50, 100) 
.>>> w3 = Water(25,50)
.>>> w1 + w2 + w3
.125.00, 50.00

   Karl
-- 
Please do *not* send copies of replies to me.
I read the list


More information about the Tutor mailing list