方法链 - 有多少链式方法就足够了?

hel*_*hod 2 python coding-style method-chaining

是否有关于何时停止链接方法的指南,而是将链分解为多个表达式?

考虑例如这个Python代码,它构建一个字典,word为key,相应的count为值:

def build_dict(filename):
    with open(filename, 'r') as f:
        dict = defaultdict(int)

        for word in f.read().lower().split(): # too much?
            dict[word] += 1

        return dict
Run Code Online (Sandbox Code Playgroud)

链接3种方法好吗?通过分割表达式,我可以获得任何显着的好处吗?

pet*_*hen 6

链接只有两个是什么意思?如果你进行方法链接,那就做吧.

这更像是一个格式化的问题,如果它对于单行来说很多,我更喜欢

(x.Foo()
  .Bar()
  .FooBar()
  .Barf());
Run Code Online (Sandbox Code Playgroud)

另一个问题可能是调试器,Foo如果要跟踪,则会强制您跟踪Bar.

  • 将括号括在整个表达式中,它将正常工作. (3认同)
  • 当然,这种语法在Python中是非法的. (2认同)