Skip to content

流畅的 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

Comments