python在编写类的时候经常会出现这样的写法:
def __init__(self, *args, **kwargs):
doSth()
这种写法代表这个方法接受任意个数的参数,其中不指定key的参数会以list形式保存到args变量中,指定key的参数会以dict的形式保存到kwargs变量中。
示例如下:
函数如下:
def helloWorld(*args, **kwargs):
print('non-key arguments are:')
for i in args:
print(i)
print ('key-value arguments are:')
for k,w in kwargs.items():
print(k + '=' + w)
如果调用以下代码:
helloWorld('I','know',whom='you',what='understrand')
运行结果如下:
non-key arguments are:
I
know
key-value arguments are:
whom=you
what=understrand
可以看出来,没有key的参数是:I和Know
而指定了key的参数是you(key为whom)和understand(key为what)。
网友评论