>>num1=10>>>num2=num1>>>num3=10>>>id(num1)>>>id(num2)>>>id(num3)可以看到num1、num2、num3三個對象指向的是一個地址,python在這里采用的是一種叫做引用計數的方式來完成的,很類" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

老生常談python函數參數的區別(必看篇)

系統 1742 0

在運用python的過程中,發現當函數參數為list的時候,在函數內部調用list.append()會改變形參,與C/C++的不太一樣,查閱相關資料,在這里記錄一下。

python中id可以獲取對象的內存地址

            
>>> num1 = 10
>>> num2 = num1
>>> num3 = 10
>>> id(num1)
>>> id(num2)
>>> id(num3)
          

可以看到num1、num2、num3三個對象指向的是一個地址,python在這里采用的是一種叫做引用計數的方式來完成的,很類似C++zhong的智能指針,變量賦值給變量相當于同一對象引用計數器+1,而不是重新分配空間。

對于list對象可以看到下面的結果:

            
>>> list1 = [0,1]
>>> list2 = [0,1]
>>> id(list1)
>>> id(list2)
>>> list3 = list1
>>>id(list3)
          

list1與list3指向同一空間,list2指向另外的一處地址。

python中的函數傳參是對象傳遞,同時也存在局部與全局的問題,在傳參過程中存在兩個規則:

通過引用將參數復制到局部作用域的對象中,意味著被用來訪問函數參數的變量于提高給函數的對象無關,因為存在一個復制問題,這和C語言是相同的。而且修改局部對象不會改變原始數據。

可以在適當位置修改可變對象。可變對象主要就是列表和字典,這個適當位置實質上就是前面分析的局部子對象的修改不會改變字典對象或者列表對象的ID

            
def incrInt(num):
  pId(num)
  num += 1;
  pId(num)

def incrList(listArg):
  pId(listArg)
  listArg.append(1);
  pId(listArg)
def pId(arg):
  print id(arg)
num1 = 10
pId(num1)
incrInt(num1)
print(num1)

list1 = [0,2]
pId(list1)
incrList(list1)
print(list1)
          

結果如下:

            
python test.py
4299181904
10
4336979912
[0, 2, 1]
          

可以看到在函數內部,改變int的數值,則num指向了另一塊內存地址,而修改list,則是在同一塊內存地址。

在python中,對象可分為可變(mutable)和不可變(immutable)兩種類型,元組(tuple)、數值型(number)、字符串(string)均為不可變對象,而字典型(dictionary)和列表(list)的對象是可變對象。

所以在傳參過程中要注意下。

以上這篇老生常談python函數參數的區別(必看篇)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 人人干人人舔 | 激情小说激情图片激情电影 | 欧美中文字幕在线播放 | 久久国产热视频 | 色网在线免费观看 | 久久人人爽人人爽人人 | 成年人黄色毛片 | 久久99综合国产精品亚洲首页 | 精品国产精品 | 日韩在线观看中文 | 黑人一区 | 日日操夜夜摸 | 红杏网站永久免费视频入口 | 特级av毛片免费观看 | 久久91 | 九九视频网 | 国产一区高清 | 免费免费视频片在线观看 | 日本 欧美 国产 | 成人开心网 | 亚洲综合色网站 | 亚洲成人在线视频播放 | 精品欧美乱码久久久久久1区2区 | 国产普通话自拍 | 日韩高清一区二区 | 999www视频免费观看 | 国产在线视频色综合 | 日日a.v拍夜夜添久久免费 | 国产免费一区视频 | 香蕉久久久久久狠狠色 | 国产亚洲精品精品国产亚洲综合 | 日本一级成人毛片免费观看 | 成年网址网站在线观看 | 欧美极品欧美精品欧美视频 | 色xx综合网 | www.天天操.com| 亚洲在线一区二区三区 | 亚洲天堂网在线观看 | 夜夜爽99久久国产综合精品女不卡 | 久久久久成人网 | 一级毛片免费观看不卡视频 |