python中的*参数(不带后缀)函数/方法是啥? [复制]

Posted

技术标签:

【中文标题】python中的*参数(不带后缀)函数/方法是啥? [复制]【英文标题】:what is * arguments (without suffix) function/method in python? [duplicate]python中的*参数(不带后缀)函数/方法是什么? [复制] 【发布时间】:2018-10-17 00:24:47 【问题描述】:

我最近在几个项目上工作,看到了一个新的语法代码,一个获取 * 参数的方法(我知道 *args 和 **kwargs)

以 django 2.0.4 为例:

class DataListView(ListView):
    ...
    def get_context_data(self, *, object_list=None, **kwargs): # * argument without suffix
        return super().get_context_data(object_list, **kwargs)

问题:python函数/方法中的*参数是什么意思?

【问题讨论】:

【参考方案1】:

所以object_list 必须是一个命名参数。所有位置参数都将被* 捕获并忽略。

这是在 python 3.0 中添加的,并在 PEP 3132 -- Extended Iterable Unpacking 中进行了描述

【讨论】:

您能为此分享任何文件吗? 我用相关 PEP 的链接更新了答案。

以上是关于python中的*参数(不带后缀)函数/方法是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

C#和Java中的构造器constructor是啥?起啥作用?为啥不可以被override??

应用三参数函数“减少”列表的pythonic方法是啥?

基于 Python 类的装饰器,带有可以装饰方法或函数的参数

url后面带.json和不带的区别是啥

python中方法和函数的区别是啥?啥时候要带self?

array.splice = 是啥意思?