是否有任何區別:a = b = c和編程分別賦值有什麼區別?
a=b=c
和
b = c
a = c
在Python?
口譯員會不同地閱讀這些內容嗎?
當我使用第一個/第二個方法時,如果它有副作用,有什麼副作用?
是否有任何區別:a = b = c和編程分別賦值有什麼區別?
a=b=c
和
b = c
a = c
在Python?
口譯員會不同地閱讀這些內容嗎?
當我使用第一個/第二個方法時,如果它有副作用,有什麼副作用?
爲了您將來的谷歌搜索,這被稱爲「鏈式賦值」或「嵌套賦值」。如this answer所示,鏈接賦值對強制解釋器只評估一次右手錶達式很有用。例如:
a = b = myComputeHeavyFunc() # Only one evaluation
一次,其中作爲多線解計算函數兩次,提供了性能損失將僅評估myComputeHeavyFunc()
:
a = myComputeHeavyFunc() # One evaluation
b = myComputeHeavyFunc() # Another evaluation
如果c
是現有的對象,然後兩者的代碼段將具有相同的效果,將a
和b
綁定到相同的現有對象。
如果c
是一個文字,那麼第一個會將它們綁定到同一個對象,而第二個將創建兩個單獨的對象(對於特定的值「create」;差異只對可變對象很重要)並將它們綁定到每個名稱。
好吧,我明白了。謝謝! – DevFallingstar
太棒了!謝謝 – DevFallingstar
@DevFallingstar不用擔心,很高興我可以幫助 – mattjegan