1. 属性值的链式函数调用
之前有介绍过如何获取属性,其实我们获取了属性之后,还可以继续调用该属性的方法:
import fireenglish = 'Hello World'fire.Fire()
因为我们获取的是一个字符串,所以可以调用字符串的所有方法,我们可以将其转换为大写:
$ python chain.py englishHello World$ python chain.py english upperHELLO WORLD
2. 基于类的链式函数调用
如果我们想要多次调用的类方法,那么类函数的返回值必须为self:
# coding: utf8import fireclass Activities:def __str__(self):return ""def eat(self, food, num):print(f"Eat {num} {food}")return selfdef drink(self, drinks, num):print(f"Drink {num} {drinks}")return selfif __name__ == '__main__':fire.Fire(Activities)
正确的调用方式如下:
$ python chain.py eat 1 apple drink 1 coffee eat 3 bannas doneEat apple 1Drink coffee 1Eat bannas 3
值得注意的是,我们这里需要定义一个__str__方法,用于在屏幕上进行显示,不然会显示对应的帮助文档。
