流畅的 Python 阅读记录四:函数传参
这里主要讲一下 函数 相关内容
函数传参中 * 和 ** 的区别
*
是让参数以 tuple 形式来导入.
def test(param1, *param2):
print(param1)
print(param2)
test(1, 2, 3, 4)
1
(2, 3, 4)
**
是让参数以 dictionary 形式导入.
def test(param1, **param2):
print(param1)
print(param2)
test(1, a=2, b=3)
1
{'a':2, 'b':3}
两者同时出现在同一个函数中:
def test1(param1, *param2, param4=10, **param3):
print(param1)
print(param2)
print(param3)
print(param4)
def test2(param1, param4=10, *param2, **param3):
print(param1)
print(param2)
print(param3)
print(param4)
test1(1, 2, 3, 6, a=4, b=5)
1
(2, 3, 6)
{'a':4, 'b':5}
10
test1(1, 2, 3, param4=6, a=4, b=5)
1
(2, 3)
{'a':4, 'b':5}
6
test2(1, 2, 3, 6, a=4, b=5)
1
(3, 6)
{'a':4, 'b':5}
2