在 Python 中,通过使用 /
和 *
可以强制使用位置传参和关键字传参,让函数调用更加清晰和规范。
1.强制使用位置传参
- 在函数定义时,将参数列表中带有
/
的参数之前的参数称为位置参数,调用这些参数时只能使用位置传参,不能使用关键字传参。 - 这样可以强制调用者按照定义函数时的顺序提供参数值,提高了代码的可读性和可维护性。
2.强制使用关键字传参
- 在函数定义时,将参数列表中带有
*
的参数之后的参数称为关键字参数,调用这些参数时只能使用关键字传参,不能使用位置传参。 - 使用关键字传参可以提高函数调用的可读性,因为函数调用时可以明确指定参数的名称。
下面是一个示例,演示了如何在函数定义中强制使用位置传参和关键字传参:
# 定义函数,强制使用位置传参和关键字传参
def func(a, b, /, c, *, d):
print("a:", a)
print("b:", b)
print("c:", c)
print("d:", d)
# 函数调用示例
func(1, 2, 3, d=4) # 输出结果为:a: 1, b: 2, c: 3, d: 4
func(1, b=2, c=3, d=4) # 报错,因为参数 b 是位置参数,不能使用关键字传参
func(1, 2, c=3, d=4) # 输出结果为:a: 1, b: 2, c: 3, d: 4,使用了位置传参和关键字传参
python中的*号还有其他的用法,见我下面这篇文章: