Dear all, I have what will probably sound as stupid questions for experienced Python users... which I am not, hence my seeking for some help.
------------ QUESTION 1: I've implemeted a class which defines a container with 2 lists of data (with some specific format). Some of the methods simply transform these data and therefore return a new container of 2 lists. I want to be able to use these results without having to re-instanciate them, so I return them as instances of the class: class MyClass: def __init__(self, data): #various checks for the format and content of data (data = [x,y] where x and y are 2 lists of floats) self.data = data def transformdata(self): newdata = transform(data) return MyClass(newdata) In this way I can do: x = list1 y = list2 data = MyClass([x,y]) moddata = data.transformdata() moddata2 = moddata.transformdata() Is that the correct way to go (i.e. is this pythonic) ? What I want to avoid is: moddata = data.transformdata() moddata2 = MyClass(moddata).transformdata() ------------ QUESTION 2: If I go this way, I have a second problem: if I create a new class which inherits from the previous, I would expect/like the methods from the initial class to return instances from the new class: class MyClass2(MyClass): def othermethods(self): return MyClass2(whatever) Then I get: x = list1 y = list2 data = MyClass2([x,y]) finaldata = data.transformdata() My problem is that finaldata is (of course) an instance of MyClass and not MyClass2. How do I deal with this ? All help will be much appreciated... Cheers, Auré
-- http://mail.python.org/mailman/listinfo/python-list