关于传参
稍微总结一下 Python 函数传递参数的方式。
位置实参
实参和形参的位置是关联对应的。一个实参对应一个相应位置的形参。
def func(a, b):
print(a, b)
>>> func(1, 2)
1 2
>>> func(2, 1)
2 1
关键字实参
实参以 key=value
的形式传递,因为已经指明了将 value
传给哪个参数,所以位置顺序就无关紧要了。
def func(a, b):
print(a, b)
>>> func(a=1, b=2)
1 2
>>> func(b=2, a=1)
1 2
默认值
可以给形参指定默认值,当没有提供实参的时候,就会使用默认值。
利用这个特性可以实现可选参数。
def func(a, b=2):
print(a, b)
>>> func(1)
1 2
>>> func(1, 3)
1 3
传递任意数量的实参
使用形参 *topping
可以使函数能够传递任意数量的实参。
传递的参数会被封装到一个元组中。
def func(*args):
print(args)
>>> func('a', 'b', 'c')
('a', 'b', 'c')
传递任意数量的关键字实参
使用形参 **kwargs
可以使函数能够传递数量的关键字实参。
传递的参数会被封装成键值对,即字典。
kwargs => keyword args
def func(**kwargs):
print(kwargs)
>>> func(a=1, b=2, c=3)
{'a': 1, 'b': 2, 'c': 3}
参考
- 《Python编程从入门到实践》
网友评论