Discuss / Python / inspect.Parameter.KEYWORD_ONLY对应的是廖老师教程中的命名关键字参数吗?

inspect.Parameter.KEYWORD_ONLY对应的是廖老师教程中的命名关键字参数吗?

在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用,除了可变参数无法和命名关键字参数混合。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数/命名关键字参数和关键字参数。 这是‘函数的参数’那一小节的原文。

KEYWORD_ONLY Value must be supplied as a keyword argument. Keyword only parameters are those which appear after a or args entry in a Python function definition. 这是python官方文档关于KEYWORD_ONLY的原文

廖老师说命名关键字参数不可以和可变参数混用,而python官方文档又说KEYWORD_ONLY参数出现在args后面,args不就是可变参数吗?出现在args后面,那意思就是可以混用喽。

那KEYWORD_ONLY到底是不是命名关键字参数呢?

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

你说得对,KEYWORD_ONLY就是命名关键字参数。

在没有*args的情况下,必须加一个*分隔:

def fn(a, b, c, *, ko):
    pass

在有*args的情况下,后面紧跟着的就是命名关键字参数:

def fn(a, b, c, *args, ko):
    pass

教程已更新。


  • 1

Reply