在Python2和3上使函数只接受关键字参数的修饰程序。

kwargs-onl的Python项目详细描述


https://img.shields.io/travis/adamchainz/kwargs-only/master.svghttps://img.shields.io/pypi/v/kwargs-only.svg

未维护:我不再维护此包,因为它用于 Python2兼容性和我使用过的所有其他项目现在都是Python3 只有。如果您想继续维护,请联系我。


一个decorator,用于使函数仅接受python 2上的关键字参数 和3。

如果您只使用python 3,则不需要这样做,只需这样做即可:

defmyfunction(*,foo=1,bar=2):pass

为什么?

如果您正在创建一个库(它仍然支持python 2),您可能希望 使其api中的所有函数只接受关键字参数 原因:

  • 为了避免用户混淆,例如,如果将xy参数作为 坐标,很容易忘记哪一个方向可以通过它们。
  • 为了使您的api更易于扩展,您将知道没有调用方依赖于 位置参数排序,因此可以重构它以使其有意义。

安装

使用pip

pip install kwargs-only

在Python2.7和Python3.7上测试。

用法

导入decorator并将其应用于函数:

fromkwargs_onlyimportkwargs_only@kwargs_onlydefmyfunction(foo=1,bar=2):pass

然后用位置参数调用函数将导致它失败 TypeError

>>>myfunction(1,2)...TypeError:myfunctionshouldonlybecalledwithkeywordargs

decorator通过允许第一个 如果参数名为selfcls,则该参数为位置参数。 kwargs_only应在classmethod之前应用于函数。 例如:

classMyClass:@classmethod@kwargs_onlydefmy_class_method(cls,foo=1):pass@kwargs_onlydefmy_instance_method(self,bar=1):pass

就这些!享受吧!

历史

待发布

1.0.1(2019-02-07)

  • 将pypi开发状态更新为inactive。这个包裹不再是 已维护,请参阅自述文件。

1.0.0(2017-06-18)

  • pypi上的第一个版本,具有kwargs_onlydecorator特性。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ArrayList Java中的搜索字符串   另一个web应用程序的java访问会话   另一个应用程序中的活动和服务之间的java通信   java根据Json字符串类型将Json字符串转换为对象   eclipse如何解决java中的错误异常。lang.NoSuchMethodError:'java。字符串javax。摆动JOptionPane。showInputDialog(java.lang.String)'   线程“main”java中的安卓异常。lang.NoClassDefFoundError:org/codehaus/jackson/JsonParseException   java如何在安卓 emulator上显示Mat图像?使用NDK   Java在本地读取测试源文件,但在服务器上读取失败   java dowhile循环用于计算输入数字中的数字。故障排除代码   JAva初学者在编写获取成本的方法时遇到困难   java是shell游戏。我如何让物体移动,特别是在特定的曲线上,但顺序是随机的?   java如何区分两个同名的JButton   java为什么我在Spring Boot中需要一个接口?   java将文件路径插入数据库将删除\   使用InterfaceType初始化java对象   java如何部署一个分为Angular、Spring Boot和MySQL的项目?   java如何使用Symja解决不等式?