一行中有多个python函数导致问题

时间:2014-09-26 17:59:50

标签: python

为什么这两行代码会做彼此不同的事情?

visited_with_path.append(deep_copy(get_path_to_point(from_point)).append(point))

    x = deep_copy(get_path_to_point(from_point))
    x.append(point)
    visited_with_path.append(x)

我只花了很多时间调试,直到我尝试进行上述更改(从第一次到第二次),虽然它解决了问题,但我不明白为什么。他们似乎应该具有相同的功能。

如果有帮助,visited_with_path是点列表的列表,deep_copy会对此列表列表进行深层复制,get_path_to_point输入一个点并返回一个点列表,而from_point和point只是点。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

.append不返回任何内容 - 它会修改列表,因此您基本上将deep_copy(get_path_to_point(from_point))附加到visited_with_path,返回None,然后尝试到.append(point)None,这不起作用。