函数中的星号
在函数的参数中星号,表示将**(任意个数)没有命名的参数**导入到函数中。单星号表示将这组参数以元组形式储存,双星号表示将这组参数以字典形式储存
单星号:
def test(a1, *a2):
print(a1)
print(a2)
test(1,2,3,4)
输出:
1
(2, 3, 4)
双星号:
def test(a1, **a2):
print(a1)
print(a2)
test(1,2,3,4)
此时会报错,因为双星号是以字典形式导入的,所以需要传入的参数是能形成键值对的。
TypeError: test() takes 1 positional argument but 4 were given
正确的做法是:
def test(a1, **a2):
print(a1)
print(a2)
test(1,a=2,b=3,c=4)
输出是:
1
{'a': 2, 'b': 3, 'c': 4}
参数前的星号
如果对一个元组或者列表前加单星号
x = np.rand(5,4)
x_shape = x.shape
print(*x_shape)
输出是
5,4