Python3 中的 *args 是否保证保持顺序?

Is *args in Python3 guaranteed to preserve order?

在 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 take/consider 参数作为元组数据类型。

在 Python 元组中始终有其顺序。

只有字典是一种不遵循python

顺序的数据类型