的有這樣的代碼:分配對象和基本類型
# assignment behaviour for integer
a = b = 0
print a, b # prints 0 0
a = 4
print a, b # prints 4 0 - different!
# assignment behaviour for class object
class Klasa:
def __init__(self, num):
self.num = num
a = Klasa(2)
b = a
print a.num, b.num # prints 2 2
a.num = 3
print a.num, b.num # prints 3 3 - the same!
問題:
- 爲什麼賦值運算符的工作方式不同的基本類型和 類對象(對於基本類型,它複製的價值,對於類對象,它通過引用複製)?
- 如何僅按值複製類對象?
- 如何使基準類型的引用像C++ int & b = a?
Python語言之外,引用/按價值的術語已經混淆和混淆了。在Python內部,其數據模型和執行模型非常特殊,這些術語仍然更加混亂和混亂,應該避免。這是我的看法,但請注意我不是Python專家。請參閱(http://stackoverflow.com/a/986145/551449)以及其他許多關於此主題的帖子和博客。看來您需要再多研究一下Python – eyquem