热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么我不能在范围函数上使用关键字参数?

如何解决《为什么我不能在范围函数上使用关键字参数?》经验,为你挑选了1个好方法。

在python文档中,它说:

任何函数参数,无论是非可选的还是可选的(具有默认值)都可以作为关键字参数调用,只要其中一个参数名称匹配即可.但是,关键字参数必须遵循所有位置参数.

我试过这个:

kwargs = {'step':-1, 'start':10, 'stop':5}
list(range(**kwargs))

但是python给了男人一个错误:

TypeError: range() takes no keyword arguments

为什么是这样?



1> Martijn Piet..:

range()不是python函数.它是C型; C类型遵循不同的参数规则,range()只接受位置参数.

请参阅Calls表达式文档:

CPython实现细节:实现可能提供内置函数,其位置参数没有名称,即使它们为了文档的目的而"命名",因此不能通过关键字提供.在CPython中,这是用于在C中实现的PyArg_ParseTuple()用于解析其参数的函数的情况.

range()未命名的位置参数因此不能用作关键字参数.


推荐阅读
author-avatar
mobiledu2502925163
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有