您的位置: 网站首页> python进阶> 当前文章
在python中实现链式调用-小技巧
老董-我爱我家房产SEO2019-06-06170围观,124赞
链式调用在js的JQuery框架中很常见,看起来也很帅气,比如$('text’).setStyle('color', 'red').show(),一般的函数调用和链式调用的区别是链式调用完方法后,return返回调用该方法的对象。
那么链式调用在python里面如何实现呢。按照传统的方式定义1个类然后测试下:
class Person: def __init__(self,name,age): self.name = name self.age = age def eat(self,sth): print(self.name,'eat',sth) def drink(self, sth): print(self.name,'drink',sth) p = Person('lao wang',18) p.eat("rice").drink('water')
AttributeError: 'NoneType' object has no attribute 'drink'
上述代码提示NoneType' object has no attribute 'drink',说明第1个方法eat返回的是None,如果eat里面能返回Person类的对象那么必然可以调用drink方法,如何返回Person对象呢?直接return self即可,self指的就是这个类实例化后的对象,关于self的理解可以查看python面向对象self是什么。
在函数中return self后就实现了链式调用:
class Person: def __init__(self,name,age): self.name = name self.age = age def eat(self,sth): print(self.name,'eat',sth) return self def drink(self, sth): print(self.name,'drink',sth) p = Person('lao wang',18) p.eat("rice").drink('water')
lao wang eat rice lao wang drink water
很赞哦!
python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群
下一篇:python循环引用内存泄漏案例
相关文章
文章评论
-
在python中实现链式调用-小技巧文章写得不错,值得赞赏