您的位置: 网站首页> python进阶> 当前文章

在python中实现链式调用-小技巧

老董-我爱我家房产SEO2019-06-06164围观,119赞

  链式调用在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中实现链式调用-小技巧文章写得不错,值得赞赏

站点信息

  • 网站程序:Laravel
  • 客服微信:a772483200