"Dick Moores" <[EMAIL PROTECTED]> wrote

I've heard about using assert() to check up


The top three work silently, but I found that I could not figure out how to use assert() with the functions that print rather than return. E.g., maxDiffBetPrimes() and printTime(). Is there a way?

Thats another good reason for not printing inside functions. Just get them to return the pre formatteed string which can be printed outside the function.

Unless you have a value to check you can't really use assert()
So if the function uses globals (which it shouldn't!) you might check them otherwise you are stuck.

If it'll help, here's printTime():
def printTime(timeEnd, timeStart):
   from mycalc import hmsToText
   timeElapsed = timeEnd - timeStart
   if timeElapsed > 60:
       print "Time was", hmsToText(timeElapsed)
   else:
       print "Time was %.4g seconds" % timeElapsed

Replace the prints with returns
change the function name to getTime()
Then call it with

t =  getTime(...)
print t

Now you can use an assert on t...

Of course if getTime is not your functin then modification may not be possible!

HTH,

--
Alan Gauld
Author of the Learn to Program web site
http://www.freenetpages.co.uk/hp/alan.gauld

_______________________________________________
Tutor maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to