如何在python中通过引用分配变量?
这个问题在这里已经有了答案:
简单的答案是python中的所有变量都是引用。 一些引用是不可变对象(如字符串,整数等),一些引用是可变对象(列表,集合)。 改变引用对象的值(如添加到现有列表)和更改引用(更改变量以引用完全不同的列表)之间存在细微差别。
在你的例子中,你最初是x = oa
使变量x
成为任何oa
的引用(对1
的引用)。 当你然后做x = 2
,你所作出的修改X引用(它现在引用2
,但oa
仍引用1
。
关于内存管理的简短说明:
Python为你处理所有这些内存管理,所以如果你这样做:
x = "Really_long_string" * 99999
x = "Short string"
当第二个语句执行时,Python会注意到没有更多的对“真正的长字符串”字符串对象的引用,它将被销毁/释放。
实际上,这取决于类型。 整数,浮点数,字符串等是不可变的,例如对象的实例是可变的。
你不能改变这一点。
如果你想改变你需要写的:
o.a = 2
在你的情况
x = 2
仅创建一个值为2的新变量,与上面的'x = oa'语句无关(意味着最后一个语句没有效果)。
什么会工作是:
x = o
这将引用o。 比说
x.a = 2
这也会改变oa,因为x和o会引用同一个实例。
链接地址: http://www.djcxy.com/p/20839.html上一篇: how to assign variable by reference in python?
下一篇: How to change the scope of a variable in a function? Python