我们该如何理解这个函数签名?

编程语言 2026-07-10

我们应该如何解读这个函数签名?

class MyObject:

    def get_context_data(self, *, object_list = ..., **kwargs):
        context = super().get_context_data()

我的意思是,既有 *,又有省略号 ...,它们都被分配给 object_list

据我所知,这看起来像是若干个必需的定位参数(未命名),然后是一个名为 object_list 的参数,后面的实现再来。这样对吗?

解决方案

它意味着这个方法仅接受关键字参数(因为 *),具体来说,名为 object_list 的一个关键字参数,类型未知,默认值为 ...,这可以表示任何东西,再加上任意数量的其他关键字参数(**kwargs)。

作者想让 ... 表示什么,谁也说不准。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章