python 通过函数无返回的修改数据结构,在函数外部,数据结构也可被修改
2017-05-11 10:27
302 查看
class TreeNode: def __init__(self,x): self.val = x self.left = None self.right = None def change(root): root.left,root.right = root.right,root.left if __name__=="__main__": root = TreeNode(0) root.left = TreeNode(1) root.right = TreeNode(2) change(root) print root.left.val
最终的输出为:2
也就是说,就算change 没有返回root,在函数外部的root的结构也被修改。
原因是数据结构内部的地址关系在函数中遭到了修改,因此就算从函数外部看,数据结构也遭到改变。
相关文章推荐
- 修改数据表DataTable某一列的类型和记录值(正确步骤:1.克隆表结构,2.修改列类型,3.修改记录值,4.返回希望的结果)
- python通过装饰器检查函数参数数据类型的方法
- 通过Javascript将数据导出到外部Excel文档的函数代码
- 通过Javascript将数据导出到外部Excel文档的函数代码
- 【数据结构】外部排序总结 + 构建败者树 Python 版
- 《String类对象通过形参传递到函数中,在函数体中修改该引用后,外部引用不能获取到更改后的值》
- 比较两个DataTable数据(结构相同),返回新增的,删除的,修改前的,修改后的 DataTable
- 通过Fiddler肆意修改接口返回数据进行测试
- 比较两个DataTable数据(结构相同),返回新增的,删除的,修改前的,修改后的 DataTable
- Oracle数据库(Oracle存储结构、Oracle运行机制、日期相关的函数、序列、大对象数据类型、表的修改与约束、事务)
- Python 通过 ACR122 修改 Mifare 1 卡数据
- python内部函数怎么修改外部函数的值?
- 【python 】数据类型和返回数据类型的函数
- Python3 迭代器与生成器,函数,数据结构
- Python - 函数、排序、线性数据结构
- 使用友元函数实现用外部函数修改类内的私有数据成员
- python内部函数如何修改外部函数变量
- [置顶] 一位数组返回id和pid通过这两个参数转换为树形结构数据,和树形结构的渲染
- 【Python】控制流语句、函数、模块、数据结构
- python通过装饰器检查函数参数数据类型的方法