您如何链接多个函数,以及每个函数的 return 多个元组?

How do you chain multiple functions, and return multiple tuples from each one?

我正在尝试编写一个程序,其中包含许多用于不同计算的函数,所有这些函数都涉及元组,并由 main()

控制

函数本质上是这样的:

def open_file()
def read_file()
def get_data()
def calculate_info()
def display_info()

def main()
    open_file()
    read_file()
    get_data()
    calculate_info()
    display_info()

main()

令我困惑的是如何将它们链接在一起。例如,我希望 read_file() 读取 open_file() 返回的内容,get_data() 从 read_file() 返回的内容中获取我想要的内容,等等。

我的问题是实际应该返回什么以及如何确保下一个函数使用前一个函数返回的内容?与此相关的是,括号中的内容是什么?

一种选择是保留函数的引用并在循环中调用它们。例如:

def foo(x):
    return x+1

def bar(x):
    return x+2

funcs = [foo, bar]
a = 0

for f in funcs:
    a = f(a)
print(a)

如果您需要更多控制,请查看 command-pattern

您可以使用类似这样的方法来处理 python

中的元组
def open_file(*file):
    return ("test", "test2")

def read_file(*file):
    return ("test", "test2") 

def get_data(data1, data2):
    return ("test", "test2")

def calculate_info(*data):
    return (8, 10, 14)

def display_info(*data):
    print data

def main()
    (k,l) = open_file()
    (m,n) = read_file(k,l)
    (o,p) = get_data(m,n)
    (q,r,s) = calculate_info(o,p)
    display_info(q,r,s)

main()

您使用 * 运算符将元组指定为 python 中的参数。当 returning return 一个元组时,将它们作为单个变量保存,例如 x = open_file()

或 (p,q) = open_file()