首页 炼丹房 帖子详情
python3.8之仅限位置形参
收藏
快速回复
炼丹房 问答头脑风暴 1727 13
python3.8之仅限位置形参
收藏
快速回复
炼丹房 问答头脑风暴 1727 13

来介绍一下python3.8的一个特性,仅限位置形参

0
收藏
回复
全部评论(13)
时间顺序
水水水的老师
#2 回复于2020-04

首先说说 为什么要引入这个功能  原因是来源于一个issue 由Pablo Galindo提出来  并贡献代码  于PEP 570进行标准说明

0
回复
水水水的老师
#3 回复于2020-04

当时大佬们讨论的网页我也附上来 https://discuss.python.org/t/pep-570-python-positional-only-parameters/1078

0
回复
水水水的老师
#4 回复于2020-04

python这门语言是年轻的   就是不断的有人提出问题  有人解决问题  并且把解决问题的成果以PEP标准发布出来  这是当时提出了问题的Vladislav和他的建议的链接 https://discuss.python.org/t/pep-570-weird-syntax-leading-to-inconsistence/3605

0
回复
水水水的老师
#5 回复于2020-04

将形参标记为仅限位置形参将允许在未来修改形参名而不会破坏客户的代码。 

0
回复
水水水的老师
#6 回复于2020-04
将形参标记为仅限位置形参将允许在未来修改形参名而不会破坏客户的代码。 

例如,在 statistics 模块中,形参名 dist 在未来可能被修改。 这使得以下函数描述成为可能:

def quantiles(dist, /, *, n=4, method='exclusive')
    ...
0
回复
水水水的老师
#7 回复于2020-04

由于在 / 左侧的形参不会被公开为可用关键字,其他形参名仍可在 **kwargs 中使用

0
回复
水水水的老师
#8 回复于2020-04
由于在 / 左侧的形参不会被公开为可用关键字,其他形参名仍可在 **kwargs 中使用
>>> def f(a, b, /, **kwargs):
...     print(a, b, kwargs)
...
>>> f(10, 20, a=1, b=2, c=3)         # a and b are used in two ways
10 20 {'a': 1, 'b': 2, 'c': 3}
0
回复
水水水的老师
#9 回复于2020-04

这极大地简化了需要接受任意关键字参数的函数和方法的实现。 例如,以下是一段摘自 collections 模块的代码:

class Counter(dict):

    def __init__(self, iterable=None, /, **kwds):
        # Note "iterable" is a possible keyword argument
0
回复
AIStudio810258
#10 回复于2020-04

应用更灵活了

0
回复
AIStudio810258
#11 回复于2020-04

增强了虚拟接口的灵活性。

0
回复
AIStudio810258
#12 回复于2020-04

编写时预留接口,运行时或升级时完成代码。

对编译的语言意义更大。对python这种脚本语言应该是也有新需求了吧。

0
回复
水水水的老师
#13 回复于2020-04
编写时预留接口,运行时或升级时完成代码。 对编译的语言意义更大。对python这种脚本语言应该是也有新需求了吧。

哈哈  python说它是脚本语言

0
回复
水水水的老师
#14 回复于2020-04
编写时预留接口,运行时或升级时完成代码。 对编译的语言意义更大。对python这种脚本语言应该是也有新需求了吧。

也是情有可原的  但是我觉得不能这么说

0
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户