正确答案是:D
分析:
A: `*args` 确实用于收集位置参数。在调用函数时,可以传入任意数量的位置参数,这些参数会被收集到一个元组中。
B: `**kwargs` 用于收集关键字参数。在调用函数时,可以传入任意数量的关键字参数,这些参数会被收集到一个字典中。
C: 如果一个函数同时使用 `*args` 和 `**kwargs`,在调用该函数时,确实需要先传入位置参数,再传入关键字参数。这是 Python 语法的规定。
D: 函数参数的分类不仅限于关键字参数和默认参数。函数参数实际上可以分为位置参数(positional arguments)、关键字参数(keyword arguments)、默认参数(default arguments)、可变位置参数(*args)和可变关键字参数(**kwargs)。因此,选项 D 的说法不完整且不准确。