分配PHP和Python之间的区别?

时间:2015-08-30 03:56:48

标签: php python variable-assignment

我已经学习了PHP,现在我学习了Python。我用这两种语言编写了这段代码,但它的行为有所不同。

PHP:

<?php
        $x = [];
        $y = $x;
        $x['key'] = 'value';
        var_dump($x);
        var_dump($y);

的Python:

    x = {}
    y = x
    x['key'] = 'value'
    print(x)
    print(y)

y在PHP中为空,但在Python中不为。

我想知道为什么......

2 个答案:

答案 0 :(得分:4)

在PHP中,当您分配x = {} y = x.copy() x['key'] = 'value' print(x) print(y) 时,它会复制数组。在Python中,字典是对象,您只需复制引用 - 而不是字典本身。如果你想复制字典,有一种方法:

top

答案 1 :(得分:0)

有些人说python没有变量,python有名字。名称分配给一个值,而不是分配给变量的值。

例如,

    x =23

enter image description here

现在做你以前做的事情:

    x = 23
    y = x

enter image description here

如您所见,没有创建两个值,而是两个名称指向相同的值23.

所以,我认为你现在了解情况。两者都指向相同的价值。

因此,在您的示例中,两者都指向相同的字典。如果一个名称更改字典会发生什么。其他名称将有更改,因为他们指向同一个字典。希望它能够清除。