簡體   English   中英

是否可以保證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)還是僅僅是實現細節的副作用?


在嘗試研究這一點時,我看到自Python 3.6起, **kwargs中的順序得以保留,而在PEP-468中對此進行了指定,但是我在這方面卻沒有提到*args

無疑,它保留了Order,因為* args將參數視為元組數據類型。

在Python中,元組總是有其順序。

只有字典是一種不會遵循python中的順序的數據類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM