1
從命令式編程背景來看,令人驚訝的是,賦值運算符「=」使兩個變量名指向內存中的相同位置,而不是從內存中複製內存中的值獨特的對象到另一個。這種模式既出現在本地數據類型(如列表)中,也出現在使用'class'關鍵字定義的類中。然而,我注意到這條規則的一個例外:在Python中使用唯一的內存位置創建對象
a = 2
if id(a) == id(2):
print "The id function returns the object's address in memory."
a = 3
if id(a) != id(2):
print "The hardcoded integer '2' does not get its address in memory re-assigned to that of 3"
這兩個條件都滿足了。他們有必要這樣做,否則自然數的構建就會崩潰。有什麼方法可以在我定義的類中利用這個常量?我希望有些課程不像「ls -s」,更像是「cp」。
這僅適用於-5到256之間的整數。請參閱此問題以獲取更詳細的解釋:http://stackoverflow.com/questions/306313/python-is-operator-behaves-unexpectedly-with-integers – Blender
複製模塊/協議(http://docs.python.org/2/library/copy.html)是否提供了您想要的內容,或者您是否對覆蓋分配特別感興趣?如果是後者,可以使用描述符協議(http://docs.python.org/2/howto/descriptor.html)獲得類似的內容,但它仍然不是您想要的。 – jcrudy
複製模塊確實提供了我正在尋找的內容。非常感謝你。 – seewalker