*args是否保证保持秩序



在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

当然,它保留了Order,因为*args将参数视为元组数据类型。

在Python中,元组总是有其顺序。

只有dictionary是一种数据类型,它不会遵循python 中的顺序

最新更新