2013-07-08 30 views

Trả lời

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

print(foo.__kwdefaults__) 

Output (Python 3):

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

Kể từ khi *args sẽ nuốt tất cả các đối phi từ khóa, các đối số sau nó phải được thông qua với từ khoá. Xem PEP 3102.

6

Nó được sử dụng cho keyword-only arguments:

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

>>> def a(*args, a=1): pass 
... 
>>> a.__kwdefaults__ 
{'a': 1} 
Các vấn đề liên quan