【发布时间】:2014-10-13 16:50:45
【问题描述】:
我正在尝试理解 Python 的核心思想,并且遇到了一篇很好的文章,它解释了将参数引用传递给对象。比如;
def add_to_list(list_to_add, value):
list_to_add.append(value)
将能够同时改变原来的list_to_add参数;
def change_list(list_to_add):
list_to_add = [1, 2, 3, 5]
不会做任何事。
我目前正在编写一个基本的链表打印函数,它就像;
class Node:
def __init__(self, val, next=None):
self.val = val
self.next = next
root = Node(2, Node(3, Node(4, Node(5, Node(6)))))
def print_list(root):
while root:
print root.val,
root = root.next
print ''
你猜对了。它没有改变根的值。现在我的问题是这是怎么发生的。是因为python类是不可变的吗?
【问题讨论】:
标签: python object variable-assignment