以* args的形式在函数中传递多个列表将给出None结果

时间:2019-05-11 15:40:36

标签: python-3.x

我尝试将函数中的列表作为args传递,但结果最终给了我None。你能告诉我为什么吗?

list_1 = [1, 2, 4]
list_2 = [3, 4, 2]


def total_list(*args):
    for item in args:
        for i in item:
            print(i)


print(total_list(list_1, list_2))

结果:

1
2
4
3
4
2
None

2 个答案:

答案 0 :(得分:2)

print(total_list(list_1, list_2))

您还将打印total_list函数的返回值。由于您没有任何return语句,因此其结果为None。这就是None的来源。

答案 1 :(得分:1)

由于没有total_list函数的返回值,这意味着返回值为None,因此当您在total_list内部调用print函数时,它将结束打印None

print之外调用该函数,您将看到发生了什么

def total_list(*args):
    for item in args:
        for i in item:
            print(i)

list_1 = [1, 2, 4]
list_2 = [3, 4, 2]
total_list(list_1, list_2)

输出将为

1
2
4
3
4
2