3
正式語法功能定義,7.6. Function Definitions of Python Language Reference介紹,如下:我什麼時候應該使用的子表的語法在函數定義
decorated ::= decorators (classdef | funcdef)
decorators ::= decorator+
decorator ::= "@" dotted_name ["(" [argument_list [","]] ")"] NEWLINE
funcdef ::= "def" funcname "(" [parameter_list] ")" ":" suite
dotted_name ::= identifier ("." identifier)*
parameter_list ::= (defparameter ",")*
( "*" identifier ["," "**" identifier]
| "**" identifier
| defparameter [","])
defparameter ::= parameter ["=" expression]
sublist ::= parameter ("," parameter)* [","]
parameter ::= identifier | "(" sublist ")"
funcname ::= identifier
通知的sublist
語法parameter
,這就有可能例如下面的函數定義:
def f((a,b,c), d):
return a,b,c,d
但是,我從來沒有見過任何Python代碼使用過這種sublist
語法(只是我的Python的經驗非常有限)。這裏是我的問題:
在什麼情況下相比,正式的函數定義語法提供的其他可能性將在
sublist
語法是一個更好的主意(kwargs,*iterable
和**mapping
,僅舉幾例)?是否有任何真實世界(即實際)使用的例子,使其實際有用?
注意,這個語法是在Python 3 –
刪除@ TadhgMcDonald - 延森哦,感謝那,給你和python社區。 – Naitree
刪除語法的推理可以在這裏查看:http://legacy.python.org/dev/peps/pep-3113/ –