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