Function Defaults - avoiding unneccerary combinations of arguments at input
Ivan Evstegneev
webmailgroups at gmail.com
Wed Mar 25 15:50:40 EDT 2015
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.com at python.org] On Behalf Of Terry Reedy
> Sent: Wednesday, March 25, 2015 20:43
> To: python-list at 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
More information about the Python-list
mailing list