经典面试题-Python函数怎么传入可变参数

本文引用自霍格沃兹测试开发学社录播课

经典面试题-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 中,函数怎么传入可变参数?

  1. 如果函数需要支持传入可变参数,前提是将函数的形参前面加上一个或两个*
  2. 可变的位置参数通常使用*args表示,调用时按照位置传入实参即可,所有接收到的实参会被收集成一个元组对象。
  3. 可变的关键字参数通常使用**kwargs表示,调用时按照key=value的格式传入实参即可,所有接收到的实参会被收集成一个字典对象。: