Python函式的引數數傳遞方式

2021-08-01 20:26:20 字數 648 閱讀 2952

在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中...