python 通过函数无返回的修改数据结构,在函数外部,数据结构也可被修改

来源:互联网 发布:轩辕剑崆峒印进阶数据 编辑:程序博客网 时间:2024/06/08 15:53
class TreeNode:    def __init__(self,x):        self.val = x        self.left = None        self.right = Nonedef change(root):    root.left,root.right = root.right,root.leftif __name__=="__main__":    root = TreeNode(0)    root.left = TreeNode(1)    root.right = TreeNode(2)            change(root)    print root.left.val

最终的输出为:2

也就是说,就算change 没有返回root,在函数外部的root的结构也被修改。

原因是数据结构内部的地址关系在函数中遭到了修改,因此就算从函数外部看,数据结构也遭到改变。

0 0
原创粉丝点击