簡體   English   中英

傳遞** kwargs和結尾逗號的SyntaxError

[英]SyntaxError with passing **kwargs and trailing comma

我不知道為什么這是Python 3.4中的SyntaxError:

some_function(
  filename = "foobar.c",
  **kwargs,
)

當刪除**kwargs后的尾部逗號時,它可以工作。

正如vaultah指出的那樣(出於某種原因,他不願意發布答案),此問題在問題跟蹤器中報告 ,此后已更改。 從Python 3.6開始,該語法將正常工作。

明確地說,是的,即使在*args**kwds之后,我也希望允許逗號**kwds 這就是補丁的作用。 吉多·范·羅蘇姆

最初不允許使用它的原因是因為**kwargs是參數列表中最后一個允許的項目-之后什么也不會發生; 然而,一個,貌似還有比這更跟隨它。

這已經發生了變化,因此我們現在可以使用多個關鍵字dict進行調用:

some_func(a, b, **c, **d,)

為了保持一致性,現在在函數的定義和調用中都支持尾隨逗號。 當一個人具有多個參數或幾個長參數時,這非常有用,因此邏輯線被拆分為多個物理線。

在兩個位置的結尾逗號都是可選的。

暫無
暫無

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

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