What does * and ** attached to param2 do in the code below?
def foo(param1, *param2):
def bar(param1, **param2):
*args and **kwargs are used to receive more than 0 factors.
It's acceptable if you don't get any factors, if you get 10 or 100.
*args stores the parameters of the function as tuple.
def foo(*args):
for arg in args:
print arg
print "---foo()---"
foo()
print "\n---foo(1)---"
foo(1)
print "\n---foo(1,2,3,4,5)---"
foo(1,2,3,4,5)
Results:
---foo()---
---foo(1)---
1
---foo(1,2,3,4,5)---
1
2
3
4
5
**kwargs stores keyword argument as a dictionary (except formal parameter).
def foo(keyword=3, **kwargs):
for key in kwargs:
print key, kwargs[key]
print "---foo()---"
foo()
print "\n---foo(number = 'one')---"
foo(number = 'one')
print "\n---foo(keyword='1', temp1='hello', temp2='world!')---"
foo(keyword=1, temp1='hello', temp2='world!')
Results:
---foo()---
---foo(number = 'one')---
number one
---foo(keyword='1', temp1='hello', temp2='world!')---
temp2 world!
temp1 hello
*l releases the list as an item when used in the function's factors.
def foo(num1, num2):
print num1, num2
l = [1,2]
Forward to (1,2) not foo(*l) #([1,2])
1948 I want to connect to the webcam from WSL(ubuntu)
1751 I want to run pyautogui without remote connection on Windows 10 in the cloud
3079 When building Fast API+Uvicorn environment with PyInstaller, console=False results in an error
1788 Uncaught (inpromise) Error on Electron: An object could not be cloned
© 2026 OneMinuteCode. All rights reserved.