方法链的更好的语法/替代方案

时间:2013-11-20 22:22:49

标签: python

我知道Python没有明确启用或具有允许方法链接的功能,但我想执行以下操作:

infile = wave.open(
         fileName="sample.wav",
         type='DOUBLE').Emphasize().Compress()

问题是,如果我使用,请说出以下内容:

wav.open(Emphasize(Compress("blahh", "blahh"))); 

然后:

1)对我而言,代码看起来比Method Chaining

更加丑陋

2)我需要能够在强调和压缩之前获取数据。

更好地构建此代码的任何想法?

1 个答案:

答案 0 :(得分:1)

不要害怕临时变量。它们更容易调试(使用链接,如果存在错误,最终会将其拉开),并且更容易理解(并且易于阅读,在实用性方面轻松编写)。你未来的维护者会感谢你。

IOW,这样的事情比链接更好(但你应该使用更有意义的变量名称):

compressed = Compress("blahh", "blahh")
emphasized = Emphasize(compressed)
wav.open(emphasized)

http://www.brainyquote.com/quotes/quotes/a/alanperlis177188.html