它确实有效,但仅在Python 3中有效。请参阅PEP
3102。浏览“新功能”文档后,似乎没有2.x向后移植,因此您很不走运。您必须接受任何关键字参数(
**kwargs)并手动对其进行解析。您可以使用
d.get(k,default)get
d[k]或
default不存在的方法。要从中删除参数
kwargs,例如,在调用超类的方法之前,请使用
d.pop。
请注意,在和中
def get(self, *args, raw=False,vars=None):,与关键字参数无关。这些是默认参数值。具有默认值的参数可以按位置传递,而没有默认值的参数可以通过关键字传递:
raw=False``vars=None
def f(a=1): passf(2) # works, passing a positionallydef f(a): passf(a=2) # works, passing a by keyword
同样,仅关键字参数不需要具有默认值。在
*args参数之后出现的是将它们标记为仅关键字,而不是默认值的情况:
def f(*args, a): pass# a is a mandatory, keyword-only argument



