Steven D'Aprano wrote:
I have a class with a method meant to verify internal program logic (not data supplied by the caller). Because it is time-consuming but optional, I treat it as a complex assertion statement, and optimize it away if __debug__ is false:

class Parrot:
    def __init__(self, *args):
        print "Initialising instance..."
        if __debug__:
            self.verify()  # check internal program state, not args
    if __debug__:
        def verify(self):
            print "Verifying..."

Given that verify is only called from within _init__, I would put everything within one 'if __debug__' statement. Either inline

        if __debug__:
            <code from verify function>

or if for some reason you really don't like that, nested

        if __debug__:
           def verify():
              print "Verifying..."
           verify()

tjr

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

Reply via email to