python沒有c++中的指標和引用這些概念,直接傳入變數不能實現類似引用引數的功能。
def incr_num(num):
num += 1
num = 0
num0
incr_num(num)
num0
這是因為:
>>> a=5
>>> b=5
>>> id(a)
1426024640
>>> id(b)
1426024640
>>> a+=1
>>> a
6>>> id(a)
1426024656
>>> b
5>>> id(b)
1426024640
>>> c=6
>>> id(c)
1426024656
浮點數的id在做操作之後id也要變
>>> a=2.1
>>> b=2.1
>>> id(a)
48419408
>>> id(b)
48422128
>>> a+=1
>>> id(a)
48421328
但是陣列的id不變
>>> aa=[1]
>>> bb=[1]
>>> id(aa)
49570440
>>> id(bb)
49571200
>>> aa[0]+=1
>>> id(aa)
49570440
所以我們可以這樣實現引用引數,讓變數變成陣列形式
def incr_list(list):
list[0] += 1
list = [0]
list[0]
0incr_list(list)
list[0]
1
python按引用傳遞引數
本文是python入門到函式遇到的疑惑。下面一段是基礎教程的原文python函式。所有引數 自變數 在python裡都是按引用傳遞。如果你在函式裡修改了引數,那麼在呼叫這個函式的函式裡,原始的引數也被改變了。例如 python view plain copy usr bin python 可寫函式說...
python函式引數傳遞引用,引用計數
引用計數會增加 引用計數會減少 del語句 函式引數傳遞時,隱藏屬性 from ctypes import import os.path import sys defchange x int x print x in func print x print id x x 100 print after...
引用 引用作引數
如果形參為引用型別,則形參是實參的別名,的使用說明此處只是原引數的另乙個名字而已 1.值傳遞 如果形參為非引用的傳值方式,則生成區域性臨時變數接收實參的值。void swap int left,int right 值傳遞的方式無法實現交換,因為傳參時對於引數left和right拷貝一臨時副本,交換的...