Skip to main content
Published on

Flexible Arguments in Python

Share:

Introduction

In Python, we often encounter situations where the number of arguments a function should accept is not fixed. For these cases, Python offers a way to define functions with flexible arguments.

Understanding Flexible Arguments

Flexible arguments allow you to pass an arbitrary number of arguments to a function. This is particularly useful when we don't know in advance how many arguments will need to be passed.

Basic Syntax

The syntax for defining a function with flexible arguments is simple: just prefix the argument name with the * symbol.

def printArguments(*arguments):
  for argument in arguments:
    print('Argument:', argument)

printArguments('I am a string.', 1, 1.5, True, ['ABC', 'DEF', 'GHI'])

How does it work?

When you prefix the argument name with *, it is treated as a tuple, which can contain any number of values. Therefore, you can pass as many arguments as you want to the function, and they will be treated as a single tuple.

Flexible Arguments and Named Arguments

You can combine flexible arguments with named arguments. However, the flexible arguments must come before the named arguments.

def printData(*data, name=None, age=None):
  for item in data:
    print('Item:', item)

    if name:
      print('Name:', name)

    if age:
      print('Age:', age)

printData(1, 2, 3, name="Nelson", age=28)

Conclusion

Flexible arguments in Python are a powerful tool for making your functions more adaptable and versatile. They offer a clean and efficient way to handle an unknown number of arguments, making your code more robust and flexible.

Happy coding!