如何链接多个函数,并从每个函数返回多个元组?

时间:2017-10-23 20:21:37

标签: python function chaining

我正在尝试编写一个程序,其中包含用于不同计算的众多函数,所有这些函数都涉及元组,并且由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()返回的内容中获取我想要的内容等。

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

2 个答案:

答案 0 :(得分:2)

您可以使用类似的东西来处理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中将元组指定为参数。返回时返回一个元组,并将它们保存为单个变量之类的  x = open_file()

或  (p,q)= open_file()

答案 1 :(得分:1)

一个选项是保留函数的引用并在循环内调用它们。例如:

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

相关问题