繁体   English   中英

使用函数的返回值作为另一个 function 的参数

[英]Use a function's returned values as parameters for another function

是否可以将一个 function 的返回值用作另一个的参数,例如:

def first_func():
    string1 = 'test1'
    string2 = 'test2'

    return string1, string2

def second_func(val1, val2):
    print(val1, val2)

second_func(first_func())

尝试这样做会引发Parameter 'val2' unfilled

这些是示例, *args 不适合在实际代码的情况下使用。

不要返回两个单个字符串。 而是使用两个函数。 每个对应一个值:

def first_func():
    string1 = 'test1'

    return string1

def second_func():
    string2 = 'test2'

    return string2

def third_func(val1, val2):
    print(val1, val2)

third_func(first_func(), second_func())

或者,在第一个 function 中创建一个字符串数组,并期望它来自 function 打印内容:

def first_func():
    string1 = 'test1'
    string2 = 'test2'

    array = [string1, string2]

    return array

def third_func(array):
    for item in array:
      print(item)

third_func(first_func())

first_func的结果作为一个元组返回,它是一个包含多个值的单个object。 second_func接受两个输入,在您的情况下,应该接受一个包含多个值的输入。 对于您的情况:

def first_func():
    string1 = 'test1'
    string2 = 'test2'

    return string1, string2

def second_func(vals):
    for value in vals:
        print(value)

second_func(first_func())

这种方式还接受第二个 function 的任意数量的输入。

当然你也可以在第二个 function 中玩拆包:

def second_func(**vals):
    print(vals)

second_func(input1 = first_func()[0], input2 = first_func()[1]) # etc. Could be done in a loop

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM