Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #
- # This script is inspired by the following post:
- # *args and **kwargs in Python explained
- # https://pythontips.com/2013/08/04/args-and-kwargs-in-python-explained/
- #
- # The names args and kwargs are arbitrary but usually used.
- # Important are the * and ** syntax.
- #
- # *args is used to send a non-keyworded variable length argument list to the function
- # The arguments are passed as a list.
- # **kwargs is used to pass keyworded variable length of arguments to a function.
- # The arguments are passed as a dictionary
- def func_arg_args_kwargs(arg=None, *args, **kwargs):
- print('arg :', arg)
- #
- if args is None:
- print('args : None - SHOULD NEVER HAPPEN')
- else:
- if len(args) == 0:
- print('args : empty list')
- else:
- for a in args:
- print('args :', a)
- #
- if kwargs is None:
- print('kwargs : None - SHOULD NEVER HAPPEN')
- else:
- if len(kwargs) == 0:
- print('kwargs : empty dictionary')
- else:
- for key, value in kwargs.items():
- print("kwargs : {0} == {1}".format(key, value))
- def func_args(*args):
- if args is None:
- print('args : None - SHOULD NEVER HAPPEN')
- else:
- if len(args) == 0:
- print('args : empty list')
- else:
- for a in args:
- print('args :', a)
- def func_kwargs(**kwargs):
- if kwargs is None:
- print('kwargs : None - SHOULD NEVER HAPPEN')
- else:
- if len(kwargs) == 0:
- print('kwargs : empty dictionary')
- else:
- for key, value in kwargs.items():
- print("kwargs : {0} == {1}".format(key, value))
- #
- #
- # Some sample calls to show the behavior
- #
- #
- print('func_arg_args_kwargs(1)')
- func_arg_args_kwargs(1)
- print()
- #
- # first with *args
- _args = ("two", 3, 5)
- print('func_arg_args_kwargs(*_args)')
- func_arg_args_kwargs(*_args)
- print()
- #
- #
- # now with **kwargs:
- _kwargs = {"arg3": 3, "arg2": "two", "arg1": 5}
- print('func_arg_args_kwargs(**_kwargs)')
- func_arg_args_kwargs(**_kwargs)
- print()
- #
- _fargs = 1
- _args = (2, 4, 8)
- _kwargs = {"arg3": 8, "arg2": 4, "arg1": 2}
- print('func_arg_args_kwargs(_fargs, _args, _kwargs)')
- func_arg_args_kwargs(_fargs, _args, _kwargs)
- print()
- print('func_arg_args_kwargs(_fargs, *_args, **_kwargs)')
- func_arg_args_kwargs(_fargs, *_args, **_kwargs)
- print()
- print('func_arg_args_kwargs(_args, _kwargs)')
- func_arg_args_kwargs(_args, _kwargs)
- print()
- print('func_arg_args_kwargs(*_args, **_kwargs)')
- func_arg_args_kwargs(*_args, **_kwargs)
- print()
- print('func_arg_args_kwargs(_kwargs)')
- func_arg_args_kwargs(_kwargs)
- print()
- print('func_arg_args_kwargs(**_kwargs)')
- func_arg_args_kwargs(**_kwargs)
- print()
- print('func_arg_args_kwargs(kwargs=_kwargs)')
- func_arg_args_kwargs(kwargs=_kwargs)
- print()
- print('func_arg_args_kwargs(_fargs, _args)')
- func_arg_args_kwargs(_fargs, _args)
- print()
- print('func_arg_args_kwargs(_fargs)')
- func_arg_args_kwargs(_fargs)
- print()
- print('func_arg_args_kwargs(1, 2, 3)')
- func_arg_args_kwargs(1, 2, 3)
- print()
- print('func_args()')
- func_args()
- print()
- _args = (1, 2, 3)
- print('func_args(*args)')
- func_args(*_args)
- print()
- print('func_args()')
- func_args()
- print()
- _kwargs = {"arg3": 3, "arg2": "two", "arg1": 5}
- print('func_kwargs(**_kwargs)')
- func_kwargs(**_kwargs)
- print()
Advertisement
Add Comment
Please, Sign In to add comment