How do I define a function with optional arguments?
Want to make your Python functions more flexible? Learn how to define functions with optional parameters using default values or *args and **kwargs to handle varying numbers of arguments smoothly.
Defining a function with optional arguments in Python is a great way to make your code more flexible and user-friendly. Optional arguments allow you to call the function with fewer parameters if needed, without breaking the code.
Here's how you can define a function with optional arguments:
Using default parameter values
You can assign a default value to a parameter in the function definition. If the caller does not provide that argument, Python will use the default.
def greet(name, greeting="Hello"):
print(f"{greeting}, {name}!")
- greet("Alice") will print "Hello, Alice!"
- greet("Bob", "Hi") will print "Hi, Bob!"
Using *args for variable-length positional arguments
Useful when you're not sure how many arguments might be passed.
def add_numbers(*numbers):
return sum(numbers)
Using **kwargs for variable-length keyword arguments
Lets you pass any number of named arguments.
def print_info(**info):
for key, value in info.items():
print(f"{key}: {value}")
Key Tips:
- Always place required arguments first, followed by optional ones.
- Default values can be strings, numbers, or even None.
- Using *args and **kwargs gives you the most flexibility, especially in dynamic situations.