如何在python中通过引用分配变量?

这个问题在这里已经有了答案:

  • 如何通过引用传递变量? 23个答案

  • 简单的答案是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