Skip to content Skip to sidebar Skip to footer

Multiple Optional Arguments Python

So I have a function with several optional arguments like so: def func1(arg1, arg2, optarg1=None, optarg2=None, optarg3=None): Optarg1 & optarg2 are usually used together and

Solution 1:

**kwargs is used to let Python functions take an arbitrary number of keyword arguments and then ** unpacks a dictionary of keyword arguments. Learn More here

defprint_keyword_args(**kwargs):
    # kwargs is a dict of the keyword args passed to the functionprint kwargs
    if("optarg1"in kwargs and"optarg2"in kwargs):
        print"Who needs optarg3!"print kwargs['optarg1'], kwargs['optarg2']
    if("optarg3"in kwargs):
        print"Who needs optarg1, optarg2!!"print kwargs['optarg3']

print_keyword_args(optarg1="John", optarg2="Doe")
# {'optarg1': 'John', 'optarg2': 'Doe'}# Who needs optarg3!# John Doe
print_keyword_args(optarg3="Maxwell")
# {'optarg3': 'Maxwell'}# Who needs optarg1, optarg2!!# Maxwell
print_keyword_args(optarg1="John", optarg3="Duh!")
# {'optarg1': 'John', 'optarg3': 'Duh!'}# Who needs optarg1, optarg2!!# Duh!

Solution 2:

If you assign them in the call of the function you can pre-empt which parameter you are passing in.

deffoo( a, b=None, c=None):
    print("{},{},{}".format(a,b,c))

>>> foo(4) 
4,None,None>>> foo(4,c=5)
4,None,5

Post a Comment for "Multiple Optional Arguments Python"