最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2017年05月29日 09:02:34   投稿:jingxian  
下面小編就為大家?guī)硪黄仙U刾ython函數(shù)參數(shù)的區(qū)別(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

在運(yùn)用python的過程中,發(fā)現(xiàn)當(dāng)函數(shù)參數(shù)為list的時(shí)候,在函數(shù)內(nèi)部調(diào)用list.append()會(huì)改變形參,與C/C++的不太一樣,查閱相關(guān)資料,在這里記錄一下。

python中id可以獲取對(duì)象的內(nèi)存地址

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

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

對(duì)于list對(duì)象可以看到下面的結(jié)果:

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

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

python中的函數(shù)傳參是對(duì)象傳遞,同時(shí)也存在局部與全局的問題,在傳參過程中存在兩個(gè)規(guī)則:

通過引用將參數(shù)復(fù)制到局部作用域的對(duì)象中,意味著被用來訪問函數(shù)參數(shù)的變量于提高給函數(shù)的對(duì)象無關(guān),因?yàn)榇嬖谝粋€(gè)復(fù)制問題,這和C語言是相同的。而且修改局部對(duì)象不會(huì)改變?cè)紨?shù)據(jù)。

可以在適當(dāng)位置修改可變對(duì)象。可變對(duì)象主要就是列表和字典,這個(gè)適當(dāng)位置實(shí)質(zhì)上就是前面分析的局部子對(duì)象的修改不會(huì)改變字典對(duì)象或者列表對(duì)象的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)

結(jié)果如下:

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

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

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

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

以上這篇老生常談python函數(shù)參數(shù)的區(qū)別(必看篇)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python3生成手寫體數(shù)字方法

    Python3生成手寫體數(shù)字方法

    本篇文章給大家分享習(xí)如何Python3生成手寫體數(shù)字方法以及實(shí)例代碼分享,有興趣的朋友參考下吧。
    2018-01-01
  • pytorch1.0中torch.nn.Conv2d用法詳解

    pytorch1.0中torch.nn.Conv2d用法詳解

    今天小編就為大家分享一篇pytorch1.0中torch.nn.Conv2d用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 用python找出那些被“標(biāo)記”的照片

    用python找出那些被“標(biāo)記”的照片

    這篇文章主要介紹了用python找出那些被“標(biāo)記”的照片的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Pycharm編輯器技巧之自動(dòng)導(dǎo)入模塊詳解

    Pycharm編輯器技巧之自動(dòng)導(dǎo)入模塊詳解

    我們?cè)诰幊踢^程中經(jīng)常會(huì)不經(jīng)意的使用到一些尚未導(dǎo)入的類和模塊,在這種情況下Pycharm會(huì)幫助我們定位模塊文件位置并將其添加到導(dǎo)入列表中,這也就是所謂的自動(dòng)導(dǎo)入模塊功能。本文給大家介紹了關(guān)于Pycharm編輯器技巧之自動(dòng)導(dǎo)入模塊的相關(guān)資料,需要的朋友可以參考下。
    2017-07-07
  • python飛機(jī)大戰(zhàn)pygame游戲之?dāng)硻C(jī)出場(chǎng)實(shí)現(xiàn)方法詳解

    python飛機(jī)大戰(zhàn)pygame游戲之?dāng)硻C(jī)出場(chǎng)實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了python飛機(jī)大戰(zhàn)pygame游戲之?dāng)硻C(jī)出場(chǎng)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了Python使用pygame模塊實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲中敵機(jī)出場(chǎng)相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-12-12
  • Pycharm學(xué)習(xí)教程(4) Python解釋器的相關(guān)配置

    Pycharm學(xué)習(xí)教程(4) Python解釋器的相關(guān)配置

    這篇文章主要為大家詳細(xì)介紹了最全的Pycharm學(xué)習(xí)教程第四篇,Python解釋器配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Python文件基本操作open函數(shù)應(yīng)用與示例詳解

    Python文件基本操作open函數(shù)應(yīng)用與示例詳解

    這篇文章主要為大家介紹了Python文件基本操作open函數(shù)應(yīng)用與示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • python安裝包出現(xiàn)Retrying?(Retry(total=4,?connect=None,?read=None,?redirect=None,?status=None))問題解決

    python安裝包出現(xiàn)Retrying?(Retry(total=4,?connect=None,?read=No

    這篇文章主要給大家介紹了關(guān)于python安裝包出現(xiàn)Retrying?(Retry(total=4,?connect=None,?read=None,?redirect=None,?status=None))問題的解決方法,需要的朋友可以參考下
    2022-09-09
  • 在pycharm 中添加運(yùn)行參數(shù)的操作方法

    在pycharm 中添加運(yùn)行參數(shù)的操作方法

    今天小編就為大家分享一篇在pycharm 中添加運(yùn)行參數(shù)的操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python datetime 和時(shí)間戳互相轉(zhuǎn)換問題

    python datetime 和時(shí)間戳互相轉(zhuǎn)換問題

    time和datetime都是Python中的內(nèi)置模塊(不需要安裝,直接可以使用),都可以對(duì)時(shí)間進(jìn)行獲取,對(duì)時(shí)間格式進(jìn)行轉(zhuǎn)換,如時(shí)間戳和時(shí)間字符串的相互轉(zhuǎn)換,本文先給大家介紹python datetime 和時(shí)間戳互轉(zhuǎn)問題,感興趣的朋友一起看看吧
    2022-11-11

最新評(píng)論

临漳县| 延庆县| 偃师市| 庄河市| 南康市| 金坛市| 汾西县| 梧州市| 岳西县| 韶关市| 宜兰市| 北碚区| 大荔县| 青阳县| 高安市| 青川县| 城固县| 柯坪县| 米泉市| 辉南县| 虎林市| 五常市| 汤原县| 饶阳县| 南澳县| 深水埗区| 疏勒县| 镇安县| 瑞安市| 枣强县| 同德县| 芮城县| 奇台县| 怀集县| 翁源县| 铅山县| 托里县| 竹北市| 上思县| 遂昌县| 哈密市|