python在函式中改變外部變數

2021-09-25 22:27:44 字數 762 閱讀 3786

和其他語言不一樣,傳遞引數的時候,python不允許程式設計師選擇採用傳值還是傳引用。python引數傳遞採用的肯定是「傳物件引用」的方式。實際上,這種方式相當於傳值和傳引用的一種綜合。如果函式收到的是乙個可變物件(比如字典或者列表)的引用,就能修改物件的原始值--相當於通過「傳引用」來傳遞物件。如果函式收到的是乙個不可變物件(比如數字、字元或者元組)的引用,就不能直接修改原始物件--相當於通過「傳值』來傳遞物件。

函式中使用global,將臨時變數改變為全域性變數

x = 1

def test():

global x

x = 2

print(x)

test() #2

print(x) #2

不定義全域性變數,函式裡面的變數不影響外邊,而且函式不能呼叫外邊的變數,相當於兩個變數了。

x = 1

def test():

x = 2

print(x)

test() #2

print(x) #1

在函式外邊宣告的變數,在函式裡邊是不能直接用的,正如2所說,他們屬於兩個不同的變數了。

x = 1

def test():

print(x) #error

x = 2

print(x)

test()

print(x)

改變函式中的this

有這樣的3個方法可以改變函式體的this指向 var test function x bind 方法,bind方法返回乙個指定this物件的函式,對源函式沒有影響。var bdingfn test.bind bdingfn 9 bindding 9 另外,可以給test函式換乙個this物件 var...

this指向建構函式原型鏈改變指向關係變動

輸出下面幾個方法得到結果 function foo this.a function foo.prototype.a function foo.a function foo.a 4 let obj new foo obj.a 2 foo.a 1解析 1.宣告的乙個函式foo 2.函式foo原型鏈上掛載...

在C 中如何實現模板函式的外部呼叫

export是c 新增的關鍵字,它的作用是實現模板函式的外部呼叫,類似extern關鍵字。為了訪問其他 檔案中的變數或物件,對普通型別 包括基本資料類 結構和類 可以利用關鍵字extern來使用這些變數或物件,但對於模板型別,則可以在標頭檔案中宣告模板類和模板函式,在 檔案中使用關鍵字export來...