Je suis en train de jouer avec un port simple de l'API Protovis vers Python.Conception d'une API Python: Interface ou arguments courants
Prenons l'exemple simple barre graphique, en 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();
Je débattant si vous souhaitez continuer à utiliser cette API de style interface fluide ou utiliser des paramètres nommés à la place. Avec des paramètres nommés, nous pourrions écrire:
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()
Y a-t-il un style Python préféré?
Intéressant. J'ai vu les deux. Par exemple Django utilise à la fois: les chaînes de méthodes et les arguments de mots-clés. –
Peut-être que c'est juste moi, mais je pense que c'est moche: P – poke
L'avantage de la syntaxe des mots-clés est que vous pouvez utiliser quelque chose comme 'pv.Bar (** kwargs)' plus facilement qu'avec l'API fluide. De plus, comme je l'ai vu en javascript avec jQuery, beaucoup de fonctions anonymes sont utilisées - elles ne sont pas très bien mises en correspondance avec Python. –