Python按值傳遞所有引數,但有例外(物件的別名)(初步理解)
阿新 • • 發佈:2021-01-21
python按值傳遞所有引數,但有例外(物件的別名)(初步理解)
- 按值傳遞的例子:按值傳遞
var = 1
def test(a):
a = 3
test(var)
print(var)
# 執行結果入下
#1
#
傳入函式後,函式改變的是變數值的副本,這個副本僅在函式內使用生效,即傳入函式的引數是一個函式內部的區域性變數,因此var
值沒有被改變
- 例外:存在狀態的物件
from graphics import * win = GraphWin('test', 300, 300) # 函式定義, 設定視窗背景色並且在視窗中畫一條線段的函式 def setbgAndLine(graphics ,somewin, colour): somewin.setBackground(colour) somewin.setCoords(0,0,10,10) Line(Point(4,4), Point(6,6)).draw(somewin) input() # 使視窗不自動關閉(因為ide裡的視窗會閃現一下就消失) somewin.close() # 函式呼叫 setbgAndLine( win, 'red')
執行結果
(初步理解)這裡傳入函式的引數是類似是指向這個物件的指標的副本,是一種別名的情況,在函式中對該物件進行的改變,實際上也對函式外的實際物件做出了改變,可能類似於按引用傳遞