python實現引用引數

2021-09-22 10:00:05 字數 1027 閱讀 6892

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拷貝一臨時副本,交換的...