*参数中间的args属性
*args attribute in the middle of parameters
我正在研究在 python 函数之间使用 *args 的效果,但我不明白该用例是否实用甚至可能,它在我的 [=26 上被标记为错误=].
def my_function(a, *args, b):
print(a)
print(args)
print(b)
my_function(1, 2, 3, 4, 5)
我的输出如下:
Traceback (most recent call last):
File "C:/Users/axel_/PycharmProjects/Python_Subject_Exam/3_new_exam_args_in_middle.py", line 10, in <module>
my_function(1, 2, 3, 4, 5)
TypeError: my_function() missing 1 required keyword-only argument: 'b'
所以,*args 必须永远在任何函数参数的末尾,把它放在中间是无效的 python 代码对吗?
最后我也按预期进行了测试:
def my_function(a, b, *args):
print(a)
print(args)
print(b)
my_function(1, 2, 3, 4, 5)
输出:
1
(3, 4, 5)
2
Process finished with exit code 0
此模式用于强制用户在 *args
之后指定所有参数,在您的情况下,您 必须 设置 b
。这将被接受:
my_function(1, 2, 3, 4, 5, b=6)
我正在研究在 python 函数之间使用 *args 的效果,但我不明白该用例是否实用甚至可能,它在我的 [=26 上被标记为错误=].
def my_function(a, *args, b):
print(a)
print(args)
print(b)
my_function(1, 2, 3, 4, 5)
我的输出如下:
Traceback (most recent call last):
File "C:/Users/axel_/PycharmProjects/Python_Subject_Exam/3_new_exam_args_in_middle.py", line 10, in <module>
my_function(1, 2, 3, 4, 5)
TypeError: my_function() missing 1 required keyword-only argument: 'b'
所以,*args 必须永远在任何函数参数的末尾,把它放在中间是无效的 python 代码对吗?
最后我也按预期进行了测试:
def my_function(a, b, *args):
print(a)
print(args)
print(b)
my_function(1, 2, 3, 4, 5)
输出:
1
(3, 4, 5)
2
Process finished with exit code 0
此模式用于强制用户在 *args
之后指定所有参数,在您的情况下,您 必须 设置 b
。这将被接受:
my_function(1, 2, 3, 4, 5, b=6)