1. 属性值的链式函数调用

之前有介绍过如何获取属性,其实我们获取了属性之后,还可以继续调用该属性的方法:

  1. import fire
  2. english = 'Hello World'
  3. fire.Fire()

因为我们获取的是一个字符串,所以可以调用字符串的所有方法,我们可以将其转换为大写:

  1. $ python chain.py english
  2. Hello World
  3. $ python chain.py english upper
  4. HELLO WORLD

2. 基于类的链式函数调用

如果我们想要多次调用的类方法,那么类函数的返回值必须为self

  1. # coding: utf8
  2. import fire
  3. class Activities:
  4. def __str__(self):
  5. return ""
  6. def eat(self, food, num):
  7. print(f"Eat {num} {food}")
  8. return self
  9. def drink(self, drinks, num):
  10. print(f"Drink {num} {drinks}")
  11. return self
  12. if __name__ == '__main__':
  13. fire.Fire(Activities)

正确的调用方式如下:

  1. $ python chain.py eat 1 apple drink 1 coffee eat 3 bannas done
  2. Eat apple 1
  3. Drink coffee 1
  4. Eat bannas 3

值得注意的是,我们这里需要定义一个__str__方法,用于在屏幕上进行显示,不然会显示对应的帮助文档。