0
点赞
收藏
分享

微信扫一扫

*args and **kwargs in Python 变长参数

gy2006_sw 2023-01-13 阅读 84

 ​

变长参数
  • args(非关键字参数)

def myFun(*argv): 
for arg in argv:
print (arg)

myFun('Hello', 'Welcome', 'to', 'GeeksforGeeks')

Hello
Welcome
to
GeeksforGeeks

# Python program to illustrate 
# *args with first extra argument
def myFun(arg1, *argv):
print ("First argument :", arg1)
for arg in argv:
print("Next argument through *argv :", arg)

myFun('Hello', 'Welcome', 'to', 'GeeksforGeeks')

First argument : Hello
Next argument through *argv : Welcome
Next argument through *argv : to
Next argument through *argv : GeeksforGeeks

  • ** kwargs(关键字参数)

def myFun(**kwargs): 

# print(kwargs)
for key, value in kwargs.items():
print ("%s == %s" %(key, value))
print('#'*12)

# Driver code
myFun(first ='Geeks', mid ='for', last='Geeks')

input_dict={'first' :'Geeks', 'mid' :'for', 'last':'Geeks'}
myFun(**input_dict)

first == Geeks
mid == for
last == Geeks
############
first == Geeks
mid == for
last == Geeks
############

def myFun(arg1, **kwargs): 
for key, value in kwargs.items():
print ("%s == %s" %(key, value))

# Driver code
myFun("Hi", first ='Geeks', mid ='for', last='Geeks')

first == Geeks
mid == for
last == Geeks

这种用法感觉非常奇怪

def myFun(arg1, arg2, arg3):
print("arg1:", arg1)
print("arg2:", arg2)
print("arg3:", arg3)

# Now we can use *args or **kwargs to
# pass arguments to this function :
args = ("Geeks", "for", "Geeks")
myFun(*args)

kwargs = {"arg1" : "Geeks", "arg2" : "for", "arg3" : "Geeks"}
myFun(**kwargs)


举报

相关推荐

0 条评论