链式调用,或者也可以称为方法链(Method Chaining),从字面意思上来说就是将一些列的操作或函数方法像链子一样穿起来的 Code 方式。
在 Python 中实现一个简单的链式调用就是通过构建类方法并返回对象自身或返回归属类(@classmethod)
示例代码:
class Chain(object):
def __init__(self, name):
self.name = name
def get_name(self):
print("my name is %s" % self.name)
return self
def set_name(self, new_name):
self.name = new_name
print("my new name is %s" % self.name)
return self
def talk(self):
print('We can make friends!')
return self
if __name__ == '__main__':
chain = Chain(name="张三")
chain.get_name()
print("-" * 20)
chain.get_name().talk()
print("-" * 20)
chain.set_name("李四").get_name().talk()
运行结果:
优缺点:
- 链式调用使得代码在可读性上大大的增强,同时以尽可能少的代码量去实现更多操作。
- 当链式调用的方法超过 10 步以上时,那么出错的几率就会大幅度提高,从而造成调试或 Debug 的困难。