Python3 函数中没有标识符的单个 * 是啥意思? [复制]

Posted

技术标签:

【中文标题】Python3 函数中没有标识符的单个 * 是啥意思? [复制]【英文标题】:What does a single * without identifier mean in the Python3 functions? [duplicate]Python3 函数中没有标识符的单个 * 是什么意思? [复制] 【发布时间】:2012-07-07 03:09:04 【问题描述】:

Python 函数参数中没有标识符的单个 * 是什么意思? 这是一个适用于 Python3.2 的示例:

class Shape:
    def __init__(self, *, shapename, **kwds):
        self.shapename = shapename
        super().__init__(**kwds)

对我来说,自我之后的星星很奇怪。

我在这里找到了它(从第 46 行开始): http://code.activestate.com/recipes/577720-how-to-use-super-effectively/

【问题讨论】:

为指向 PEP 的人加分 ;) (我记得读过一段 PEP 描述这一点,但我不记得在哪里,或者它是什么,/me 去了返回谷歌 【参考方案1】:

唯一的* 表示后面的所有参数都是关键字参数,也就是说,它们只能使用它们的名称提供,而不是作为位置参数。

更多详情请参阅PEP 3102。

【讨论】:

换句话说:shapename 必须在创建新的Shape 对象时显式添加,例如Shape(shapename='Circle')

以上是关于Python3 函数中没有标识符的单个 * 是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

the hash for the file is not present in the specified catalog file,是啥意

在函数的签名中,如果星号后面没有标识符名称,那么它在 Python 中的含义是啥? [复制]

void是啥意思,oop又是啥意思?

在 GCC 4.1.1 中优化文件中单个函数的方法是啥?

c语言中num[50]是啥意思

Python3快速入门——Python3函数