On Fri, 10 May 2013, Gregory Ewing wrote:

Wayne Werner wrote:
You don't ever want a class that has functions that need to be called in a certain order to *not* crash.

That seems like an overly broad statement. What
do you think the following should do?

  f = open("myfile.dat")
  f.close()
  data = f.read()

To clarify - you don't want a class that has functions that need to be called in a certain order with *valid input* in order to not crash.

Exactly what does happen - a ValueError is raised because you're(*) passing self into the file.read() function, and that input is invalid input - specifically:

    ValueError: I/O operation on closed file

*where you actually means python, because when you call `your_instance.method()`, it works effectively like a call to `YourClass.method(your_instance)`

-W
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to