【发布时间】:2018-12-28 08:35:46
【问题描述】:
在 Python3 中,我可以使用 * 接受任意数量的位置参数。
一个示例:
def a(*args):
for argument in args:
print(argument)
a(1,2,3,4)
将因此打印:
1
2
3
4
我不确定的是,如果存储在args 中的位置参数的顺序实际上可以保证被保留?
我可以相信,如果我调用a(1,2,3,4),那么args 是总是 (1,2,3,4) 或者这只是实现细节的副作用?
在尝试调查此问题时,我看到**kwargs 中的顺序自Python 3.6 以来一直保留,这在PEP-468 中指定,但在这方面我没有找到任何提及*args。
【问题讨论】:
-
是的,它保留了顺序。
-
当然,它可以按您的预期工作。
-
这是否记录在某处?我在调查时找不到任何关于它的内容,但可能是我只是不知道在哪里看
-
docs.python.org/3/tutorial/…,这些参数将被包裹在一个元组中,并且元组保持顺序。
标签: python python-3.x function-signature positional-parameter