[英]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.