On 25/04/12 10:36, Gerhardus Geldenhuis wrote:
Hi
I wrote two functions which does different manipulations on text files.

To start out with I passed the filename as a parameter and each function
opened the file and saved it.

I assume you mean it did some processing on the file data and then wrote it back?

I then realized I would need to do that twice if I wanted to use both my
functions on the same file. I the modified the functions to take the
input as follows:
myfunction(open(sys.argv[1]),'ro'))

You mean it took a file object and a string?

It still wasn't good enough so I modified the function to return data as
follows:

def myfunction
returndata = []
# some code
...
   return ''.join(returndata)

So it returns a string.

so now I can do myfunction(mysecondfunction(sys.argv[1],'ro'))
or mysecondfunction(myfunction(sys.argv[1],'ro'))

Thats inconsistent since to one occasion you pass two arguments but on the other only one - the return value of the first function. And since the first parameter is expecting a file object the string will cause an error.

But if you fixed the inconsistent data issue then the principle is fine.

so my question is philosophical. Is that the pythonian way or is there a
better/easier/more efficient way to pass data?

It depends what kind of data and what you mean by "pass".
You could use objects to pass more complex types of data, or tuples to pass multiple values. Or you could write the values into a shared database. It just depends on what you want to do, whether the function needs to e thread-safe, how big the data is, etc.

To be honest I am still a bit stuck in how I did things when I
programmed in Delphi years ago and trying to make the paradigm shift and
understanding the data structures.

Thee is virtually no difference between Delphi and Python in the way functions (and objects) work. I'm not sure what paradigmn shift you have in mind. Delphi can't return tuples, but other than that the options and styles are pretty similar.


--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to