原文英文,约6500词,阅读约需24分钟。
📝
内容提要
本文介绍Python库API设计的原则,包括遵循PEP 8和PEP 20规范,简单易用的API设计,简洁明了的命名,使用下划线表示私有变量,异常以及版本更新的处理,使用关键字参数和动态类型保持向后兼容。同时,文章也提到了Python的类型注释和数据类的使用,以及Python的灵活性需要谨慎使用。
🎯
关键要点
-
良好的API设计对用户非常重要。
-
创建库时,从良好的基础开始并进行迭代。
-
尽量遵循PEP 8和理解PEP 20,这是正确的方式。
-
标准库并不总是最佳示例。
-
暴露干净的API;文件结构是实现细节。
-
扁平结构优于嵌套结构。
-
设计库时应使用 import lib...lib.Thing() 而不是 from lib import LibThing...LibThing()。
-
避免全局配置;使用良好的默认值并让用户覆盖它们。
-
避免全局状态;使用类来代替。
-
名称应尽可能简短,同时保持清晰。
-
函数名称应为动词,类名称应为名词,但不要过于纠结于此。
-
使用单下划线表示私有是可以的;双下划线的额外隐私是不必要的。
-
如果发生错误,应抛出异常;在适当的情况下使用自定义异常。
-
只有在彻底重构API时才打破向后兼容性。
-
关键字参数和动态类型对于保持向后兼容性非常有用。
-
至少对公共API使用类型注释;用户会感谢你。
-
对于主要是数据的类使用 @dataclass。
-
Python的表达能力是无限的;不要过度使用它。
🏷️