2013-07-08 98 views

回答

7
def foo(arg1, arg2, arg3, *args, kwarg1="FOO", kwarg2="BAR", kwarg3="BAZ"): 
    pass 

print(foo.__kwdefaults__) 

輸出(Python 3中):

{'kwarg1': 'FOO', 'kwarg2': 'BAR', 'kwarg3': 'BAZ'} 

由於*args將吞下所有非關鍵字參數,參數後,必須與關鍵字進行傳遞。見PEP 3102

6

它用於keyword-only arguments

>>> def a(a, *, b=2): pass 
... 
>>> a.__kwdefaults__ 
{'b': 2} 

>>> def a(*args, a=1): pass 
... 
>>> a.__kwdefaults__ 
{'a': 1} 
相關問題