在python中,引數的傳遞方式有兩種
def
fun(data):
data[0]=2
print(data) #[2,2,3,4]
print(id(data))
data1=[1,2,3,4]
fun(data1) #[2,2,3,4]
print(id(data1))
###輸出結果
[2, 2, 3, 4]
18026632
#data記憶體位址
18026632
#data1記憶體位址
可見,兩者的記憶體位址是一樣的,所以對於可變的資料型別,是按引用傳遞的,也就是說data1和data指向記憶體的同一塊位址。
def
fun(data):
data='abc'
print(id(data)) #次出輸入data的記憶體位址
data1='abcdefg'
fun(data1)
print(id(data1))
###輸出結果
16348528
17220696
由此可見 引數個data和data1不在同乙個記憶體上,即是引數傳遞時複製了乙份。
Python的函式引數傳遞
原址 我想,這個標題或許是很多初學者的問題。尤其是像我這樣的對c c 比較熟悉,剛剛進入python殿堂的朋友們 c c 的函式引數的傳遞方式根深蒂固的影響這我們的思維 引用?傳值?究竟是那種呢。呵呵,語言的特性決定了是使用的方法,那麼,現在我們來 一下python的函式引數傳遞方式。在開始之前,我...
Python的函式引數傳遞
看兩個例子 a 1 deffun a a 2 fun a print a 1a deffun a fun a print a 1 所有的變數都可以理解是記憶體中乙個物件的 引用 或者,也可以看似c中void 的感覺。a 1 deffun a print func in id a func in 41...
Python的函式引數傳遞
看兩個例子 python a 1 def fun a a 2 fun a print a 1 a 1 def fun a a 2 fun a print a 1 python a def fun a fun a print a 1 所有的變數都可以理解是記憶體中乙個物件的 引用 或者,也可以看似c中...