-
Notifications
You must be signed in to change notification settings - Fork 841
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
请教关于引用的一个问题 #98
Comments
In [13]: a = [9, 7, 5, 3, 1]
In [14]: b = a
In [15]: b
Out[15]: [9, 7, 5, 3, 1]
In [16]: a.reverse()
In [17]: a
Out[17]: [1, 3, 5, 7, 9]
In [18]: b
Out[18]: [1, 3, 5, 7, 9] 上面的a和b其实是指向的同一个内存地址,修改任一个的值,都会影响到另一个。 In [26]: a.__str__
Out[26]: <method-wrapper '__str__' of list object at 0x7fc1f7f68988>
In [27]: b.__str__
Out[27]: <method-wrapper '__str__' of list object at 0x7fc1f7f68988> 下面是n是m的拷贝,m、n内存地址不同。 In [24]: m.__str__
Out[24]: <method-wrapper '__str__' of list object at 0x7fc1f7f6fdc8>
In [25]: n.__str__
Out[25]: <method-wrapper '__str__' of list object at 0x7fc1f7e6bdc8> In [19]: m = [0, 2, 4, 6, 8]
In [20]: n = m.copy()
In [21]: m.reverse()
In [22]: m
Out[22]: [8, 6, 4, 2, 0]
In [23]: n
Out[23]: [0, 2, 4, 6, 8] 再深一点就是__深拷贝和浅拷贝__了 |
有道理。很多高级语言,都是将某些基本类型和由基本类型组合的类型,以不同的存储方式处理。 2016-05-05 17:04 GMT+08:00 lambdaplus [email protected]:
QiWei |
谢谢! |
The text was updated successfully, but these errors were encountered: