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
顺序的数据类型
在 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
顺序的数据类型