publication通过防止通过内省意外访问私有实现详细信息,帮助您维护公共api友好模块。

publication的Python项目详细描述


问题

正如《海姆斯劳定律》中所说的,海姆斯劳定律有点残酷,

< Buff行情> < div >
有足够数量的api用户,
你在合同中承诺什么并不重要:
系统的所有可观察行为
将由某人决定。

一般来说,python有一个不同的哲学观点 现实。我们假设彼此是库的负责用户 我们消费。每次你在执行细节上弄脏的时候 升级,但对于测试、调试和 保持这种能力的实验值得付出代价。

但是,这个假设的关键是每个人都知道 闯入图书馆界面的"私人"区域。这里,有一个 期望值不匹配:

  • 库作者编写文档,然后认为用户坐下来 前后阅读文档,了解"公众" 接口就是这样做的。然后他们假设用户会知道 使用私有实现细节,如果它们偏离了这些 记录的功能。
  • 库用户 pip安装 一件事,打开一个repl,导入模块, 通过对模块及其内容执行 dir() 来发现库, 假设他们的程序没有使用任何私有实现细节 只要他们不必输入库的内容 这样做。如果他们遇到回溯,他们可以咨询 文档,简短地,直到解决。

出版使人们有可能对 这些组,这样用户仍然可以从使用 内部细节,如果他们想,但他们会知道,他们这样做。它 使模块的运行时命名空间看起来像公共文档 你的图书馆。

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

推荐PyPI第三方库


热门话题
Linux的java字符串命令   java parseInt和viewflipper布局问题   java正则表达式来平衡括号   mysql与数据库的Java连接   java将JFreeChart系列名称映射到系列索引   多线程如何使用信号量在Java中对哲学家进行编码?   oop特殊变量“this”如何准确地知道在JAVA程序中引用哪个对象?   Android上的java getType   当前值/单元格POI上的java Excel公式   代码中有错误(java.awt.image.RasterFormatException)   java改造2,参数转换   未找到java JSF 2 Ajax属性   JAVArmi。服务器在OpenJDK 8中,useCodebaseOnly默认为true   java如何用final实现静态?   对付Java语法冗长的最佳IDE宏工具?   java@Transactional不回滚