Python进阶(三)
有时候在看代码时就会看到函数会传入 *args, **kwargs,这两个参数,有时候容易忘记他们是代表着什么,今天特别写一篇文说一说。
1.*args
这个主要表示一系列的参数前面(python进阶一的拆包)我们说过了元素名前面带 *并不是指代指针,而是表示指向一系列的参数。
比如:
*list = 'apple', 'banana'
因此我们可以对函数传入一系列的参数,并且只用一个参数名,这要做的好处就是在参数个数未定的情况下,极大的方便了我们
如下:
def test1(*args):
for i, item in enumerate(args):
print(i, item)
print("test:")
test1('apple', 'banana', 'cabage')
2.**kwargs
在python中这个主要用于传入一个字典类型的(key=parameter)一系列
比如:
def test2(**kwargs):
for key, parameter in kwargs.items():
print(key, parameter)
print("test:")
test2(one='_one', two='_two')
3.还有这些用法:
print("one more test:")
_list = ["building", "sun", "flower"]
_dict = {'name':"kyda", 'age':21, 'sex':"man"}
test1(*_list)
test2(**_dict)
print("\n")
def test3(a, b, c):
print(a, b, c)
test3(*_list)