本文引用自霍格沃兹测试开发学社录播课
经典面试题-Python 函数怎么传入可变参数
霍格沃兹测试开发
http://ceshiren.com
面试问题
面试官可能会问:在 Python 中,函数怎么传入可变参数?
考察点分析
面试官主要的目的是想要了解:
- python 语言的熟悉程度
- 函数使用技巧的掌握情况
面试技术点
- Python 函数的定义和调用
-
*args
位置参数 -
**kwargs
关键字参数
位置参数*args
- 可变位置参数:*args
- 会收集为 tuple 元组
# 可变位置参数示例
def hogwarts(*args):
print(type(args)) # 将会打印 <class "tuple">
print(args) # 将会打印 ("Python", "Java", "Go")
if __name__ == "__main__":
hogwarts("Python", "Java", "Go")
关键字参数**kwargs
- 可变关键字参数:
**kwargs
- 会收集为 dict 字典
# 可变关键字参数示例
def hogwarts(**kwargs):
print(type(kwargs)) # 将会打印 <class "dict">
print(kwargs) # 将会打印 {"name": "霍格沃兹", "rank": 1}
if __name__ == "__main__":
hogwarts(name="霍格沃兹", rank=1)
面试总结
提问:在 Python 中,函数怎么传入可变参数?
- 如果函数需要支持传入可变参数,前提是将函数的形参前面加上一个或两个
*
号 - 可变的位置参数通常使用
*args
表示,调用时按照位置传入实参即可,所有接收到的实参会被收集成一个元组对象。 - 可变的关键字参数通常使用
**kwargs
表示,调用时按照key=value
的格式传入实参即可,所有接收到的实参会被收集成一个字典对象。: