Python Args and Kwargs
*args
and **kwargs
may seem scary, but the truth is that they are not that difficult to grasp and have the power to grant your functions with lots of flexibility.
Read the article
Args and Kwargs
*args
and **kwargs
allow you to pass an undefined number of arguments and keywords when calling a function.
>>> def some_function(*args, **kwargs):
... pass
...
>>> # call some_function with any number of arguments
>>> some_function(arg1, arg2, arg3)
>>> # call some_function with any number of keywords
>>> some_function(key1=arg1, key2=arg2, key3=arg3)
>>> # call both, arguments and keywords
>>> some_function(arg, key1=arg1)
>>> # or none
>>> some_function()
*args
and **kwargs
are conventions. They are not imposed by the interpreter, but considered good practice by the Python community.
args
You can access the arguments through the args
variable:
>>> def some_function(*args):
... print(f'Arguments passed: {args} as {type(args)}')
...
>>> some_function('arg1', 'arg2', 'arg3')
# Arguments passed: ('arg1', 'arg2', 'arg3') as <class 'tuple'>
kwargs
Keywords are accessed through the kwargs
variable:
>>> def some_function(**kwargs):
... print(f'keywords: {kwargs} as {type(kwargs)}')
...
>>> some_function(key1='arg1', key2='arg2')
# keywords: {'key1': 'arg1', 'key2': 'arg2'} as <class 'dict'>
- Previous
- Next
Python abs() built-in function
Python aiter() built-in function
Python all() built-in function
Python any() built-in function
Python ascii() built-in function
Python bin() built-in function
Python bool() built-in function
Python breakpoint() built-in function
Python bytearray() built-in function
Python bytes() built-in function
Python callable() built-in function
Python chr() built-in function
Python classmethod() built-in function
Python compile() built-in function
Python complex() built-in function
Python delattr() built-in function
Python dict() built-in function
Python dir() built-in function
Python divmod() built-in function
Python enumerate() built-in function
Python eval() built-in function
Python exec() built-in function
Python filter() built-in function
Python float() built-in function
Python format() built-in function
Python frozenset() built-in function
Python getattr() built-in function
Python globals() built-in function
Python hasattr() built-in function
Python hash() built-in function
Python help() built-in function
Python hex() built-in function
Python id() built-in function
Python __import__() built-in function
Python input() built-in function
Python int() built-in function
Python isinstance() built-in function
Python issubclass() built-in function
Python iter() built-in function
Python len() built-in function
Python list() built-in function
Python locals() built-in function
Python map() built-in function
Python max() built-in function
Python memoryview() built-in function
Python min() built-in function
Python next() built-in function
Python object() built-in function
Python oct() built-in function
Python open() built-in function
Python ord() built-in function
Python pow() built-in function
Python print() built-in function
Python property() built-in function
Python range() built-in function
Python repr() built-in function
Python reversed() built-in function
Python round() built-in function
Python set() built-in function
Python setattr() built-in function
Python slice() built-in function
Python sorted() built-in function
Python staticmethod() built-in function
Python str() built-in function
Python sum() built-in function
Python super() built-in function
Python tuple() built-in function
Python type() built-in function
Python vars() built-in function
Python zip() built-in function
Python Args and Kwargs
Python Basics
Python built-in functions
Python Comprehensions
Python Context Manager
Python Control Flow
Python Dataclasses
Python Debugging
Python Dictionaries
Python Exception Handling
File and directory Paths
Python Functions
Python Json and YAML
Python Lists and Tuples
Python Main function
Manipulating strings
Python OOP Basics
Reading and writing files
Python Regular Expressions
Python Sets
Python Setup.py
Python String Formatting
Python Virtual environments