Hello again ^_^,

Googled a bit, and found only one, a "ValueError" exception, but still don't
understand how it should be implemented in my case.

Should my code look like this one: 

def  my_fun(history=False, built=False, current=False, topo=None,
full=False, file=None):
        try:
                if currnet and full:
                        do something_1
                elif current and file:
                        do something_2
                elif history and full and file:
                        do something_3
        
        except ValueError:
                print("No valid input! Please try again ...")

        
        ...... some code here..............


Or I'm just too optimistic ^_^? 

Thanks in advance,

Ivan.

> -----Original Message-----
> From: Python-list [mailto:python-list-
> bounces+webmailgroups=gmail....@python.org] On Behalf Of Terry Reedy
> Sent: Wednesday, March 25, 2015 20:43
> To: python-list@python.org
> Subject: Re: Function Defaults - avoiding unneccerary combinations of
> arguments at input
> 
> On 3/25/2015 1:43 PM, Ivan Evstegneev wrote:
> > Hello all ,
> >
> >
> > Just a little question about function's default arguments.
> >
> > Let's say I have this function:
> >
> > def  my_fun(history=False, built=False, current=False, topo=None,
> > full=False, file=None):
> >     if currnet and full:
> >             do something_1
> >     elif current and file:
> >             do something_2
> >     elif history and full and file:
> >             do something_3
> >
> >
> >     ...... some code here..............
> >
> > and so on...
> >
> > I won't cover all the possibilities here (actually I don't use all of
> > them ^_^).
> >
> > The question is about avoiding the response for unnecessary
> combinations?
> >
> > For instance, if user will call function this way:
> >
> >
> >>>> my_fun(current=True, full=True, topo='some str', file="some_file")
> >
> > That will lead to function's misbehavior. As a particular case it will
> > choose "current and full" condition.
> >
> >
> > What is the common accepted way to deal with such unwanted situations?
> 
> Raise a value error for illegal combinations.  There are a few instances
in the
> stdlib where 2 of several options are mutually incompatible.
> 
> 
> --
> Terry Jan Reedy
> 
> --
> https://mail.python.org/mailman/listinfo/python-list

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

Reply via email to