设计Python API:流利的界面或参数
-
28-09-2019 - |
题
我正在玩一个简单的端口 Protovis API到Python。
在JavaScript中考虑简单的条形图示例:
var vis = new pv.Panel()
.width(150)
.height(150);
vis.add(pv.Bar)
.data([1, 1.2, 1.7, 1.5, .7, .3])
.width(20)
.height(function(d) d * 80)
.bottom(0)
.left(function() this.index * 25);
vis.render();
我正在辩论是继续使用这种流利的接口样式API还是使用名为参数。使用命名参数,我们可以写:
vis = pv.Panel(width=150,
height=150)
vis = vis + pv.Bar(data=[1, 1.2],
width=20,
height=lambda d: d * 80,
bottom=0,
left=lambda: self.index * 25)
vis.render()
有首选的Python风格吗?
解决方案
我的投票是反链接的,命名为帕拉姆。
点链链的代码智能质量很差,因为经验原型只是一个空面板()或bar(),您当然可以使用pydoc,但是在这一时代,大多数IDE都可以使用,并且出色的生产力增强了。
链接使编程使班级更加困难。能够通过列表或dict作为 *args,** kwargs,这是非常高兴的 - 虽然可以通过链接,但基本上必须支持方法或一堆反弹以进行元元素来创建课程。
链接使代码更难以阅读,因为不可避免地有人会在一行上完成所有操作,并想知道为什么两次通过同一参数传递时,一切都会愚弄 - 您可以防止这种情况基本上是内置的。
不隶属于 StackOverflow