python的變量傳遞


    python中變量都被視為對象的引用。python函數調用傳遞參數的時候,不允許程序員選擇傳值還是傳引用,python參數傳遞采用的都是“傳對象引用”的方式。 
    這種方式相當於傳值和傳引用的結合,如果函數收到的是一個可變對象(比如字典或者列表)的引用,就能修改對象的原始值——相當於通過“傳引用”來傳遞對象;如果函數收到的是一個不可變對象(比如數字、字符串或元組)的引用,就不能直接修改原始對象——相當於“傳值”來傳遞對象。 

 

def Func(x):
    x = 20

a = 10
Func(a)
print(a) 
#輸出10, 調用Func(a)時,Func內部的x變量指向整型對象10,
#(即為整型對象10的引用)。在Func內部嘗試修改一個不可變對象,
#會使得Func內部的x指向一個新的對象20,而外部的變量a仍然指向不可變對象10.


def Func2(x):
    x[0] = 20

a = [1,2,3]
Func2[a]
print(a) 
#結果為 [20, 2, 3]。

 


    python一般內部賦值變量的話,都是個引用變量,和c語言的傳地址概念差不多。可以通過id(x)來查詢x的內存地址。 
    如果 a=b的話,a和b的地址相同;如果只是想拷貝,就要用 a = b[:]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM