Steven D'Aprano <[EMAIL PROTECTED]> writes: Thanks for the answers. They are very useful.
> self.args = (x, y, z) # save a copy of the arguments As always python makes it easy. >>>> max(obj.lister()) > 4 Actually I wanted to get the maximum of attributes of several instances. List comprehension is the answer. > method. Do this instead: > > ys.append(s.x) I always get confused by extend and append. > this is wasteful. Just call the function at the end, after collecting all > the values: Easier indeed. > for index, value in enumerate(ys[:-1]): > yz.append(ys[index+1] - value) > I will need to study enumerate a bit. > By the way, don't be shy about using more meaningful names for variables. > ys and yz are terribly similar, and is a bug waiting to happen. I know, and in the real code I use better names. > You can't use continue in there, it isn't a null-op. Perhaps you wanted > "pass"? Yes. >> yz=[y[:-1].x-y[1:].x] > > How about, before trying to invent short cuts, you actually learn some of > the Python syntax? The [x:y] syntax already has a meaning to Python, > just not what you want. Perhaps it is not the same, but quite close. In matlab .* is element-by-element multiplication. I was thinking about a .- operator. wouldn't that make sense here? > Also, while everything in Python is an object, you don't *have* to use > object oriented techniques. In the real problem the class is: class Stream: def __init__(self,T_start,T_end,Q_dot): self.T_start=T_start self.T_end=T_end self.Q_dot=Q_dot self.mcp=abs(Q_dot/(T_start-T_end)) if T_start>T_end: self.type='hot' else: self.type='cold' and I thought it would make sense to store this a objects. Otherwise I would need to store each stream as a list is refer their indexes. -- Brian (remove the sport for mail) http://www.et.web.mek.dtu.dk/Staff/be/be.html http://www.rugbyklubben-speed.dk -- http://mail.python.org/mailman/listinfo/python-list