Gul*_*zar -1 python python-3.x python-3.8 pep570
3.8 中引入了新的“仅位置参数”语法。
来自文档中的仅位置参数:
有新语法 (
/) 指示某些函数参数必须按位置指定(即,不能用作关键字参数)。这与help()for 在 C 中实现的函数(由 Larry Hastings 的Argument Clinic工具产生)所示的符号相同。
来自http://northtexasroofing.net/article/10509084.shtml:
现在
pow(2, 10)和pow(2, 10, 17)是有效的调用,但是pow(x=2, y=10)和pow(2, 10, z=17)是无效的。
我的问题是,为什么要使用这种语法?
为什么它对代码的用户更好?
在我看来,这让用户更难指定他们的论点的实际含义,如果他们愿意的话。
为什么要让用户更难?
我显然错过了一些东西。
简要总结PEP 570 中所述的基本原理,该 PEP 添加了仅位置参数:
dict类型的构造函数,采用任意关键字参数。如果您要尝试在 python 中定义具有此类行为的类,则必须编写def __init__(self, **kwds), ... 除非您不能使用名为self!的关键字参数。仅位置参数可以避免这个缺陷。int构造函数。int(x="3")不比int("3"). 仅位置参数允许将没有内在含义的名称视为实现细节,而不是模块的公共 API 的一部分。PEP 中有更多细节,但这三点总结了该功能存在的一般原因。
| 归档时间: | 
 | 
| 查看次数: | 1451 次 | 
| 最近记录: |