On Jan 3, 3:49 pm, [EMAIL PROTECTED] wrote:
> hi, i have some code where i set a bool type variable and if the value
> is false i would like to return from the method with an error msg..
> being a beginner I wd like some help here
>
> class myclass:
>      .........
>     def  mymethod(self):
>              success=True
>              msg="all validation OK"
>              success=validateSthing()
>              if(success==False):
>                    msg="sthing failed"
>                    return (success,msg)
>
>              dosomeprocessing()
>              .....
>              success=validateSthingelse()
>              if(success==False):
>                    msg="sthingelse  failed"
>                    return (success,msg)
>              domoreprocessing()
>               ....
>                return(success,msg)
>
> i would like to know if this way of doing this is OK..I have need of
> many kinds of validations in this ..is there a better way of doing
> this ?

As everyone's pointed out, you should use exceptions for this sort of
thing.
>     def  mymethod(self):
>              success=True
>              msg="all validation OK"
>              success=validateSthing()
>              if(success==False):
>                    msg="sthing failed"
>                    return (success,msg)
>
>              dosomeprocessing()
>              .....
>              success=validateSthingelse()
>              if(success==False):
>                    msg="sthingelse  failed"
>                    return (success,msg)
>              domoreprocessing()
>               ....
>                return(success,msg)

As everyone else has pointed out, you should use exceptions for this
sort of thing. But even without exceptions, you can write your code a
lot more cleanly by omitting all the temporary variables. That way,
you don't have to search around to see where things are used (eg.
seeing where "all validation OK" is used requires you to read every
line of your method).

def mymethod(self):
    if not validateSthing():
        return (False, "sthing failed")
    dosomeprocessing()
    ....
    if not validateSthingelse():
        return (False, "sthingelse failed")
    domoreprocessing()
     ...
    return (True, "all validation OK")

Isn't that a lot more readable?

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

Reply via email to