【发布时间】:2010-10-07 16:50:39
【问题描述】:
我正在使用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 风格吗?
【问题讨论】:
-
有趣。两个我都见过。例如Django 同时使用:方法链和关键字参数。
-
也许只有我一个人,但我认为这两者都很丑:P
-
关键字语法的优点是你可以使用
pv.Bar(**kwargs)之类的东西比使用流畅的API 更容易。此外,正如我在带有 jQuery 的 JavaScript 中看到的那样,使用了很多匿名函数——这些函数不能很好地映射到 Python。