日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python實(shí)現(xiàn)在函數(shù)中修改變量值的方法

系統(tǒng) 1911 0

和其他語言不一樣,傳遞參數(shù)的時(shí)候,python不允許程序員選擇采用傳值還是傳引用。Python參數(shù)傳遞采用的肯定是“傳對(duì)象引用”的方式。

實(shí)際上,這種方式相當(dāng)于傳值和傳引用的一種綜合。如果函數(shù)收到的是一個(gè)可變對(duì)象(比如字典或者列表)的引用,

就能修改對(duì)象的原始值--相當(dāng)于通過“傳引用”來傳遞對(duì)象。如果函數(shù)收到的是一個(gè)不可變對(duì)象(比如數(shù)字、字符或者元組)的引用,

就不能直接修改原始對(duì)象--相當(dāng)于通過“傳值'來傳遞對(duì)象。

python一般內(nèi)部賦值變量的話,都是傳個(gè)引用變量,和C語言的傳地址的概念差不多。可以用id()來查詢內(nèi)存地址

下面的str_是可修改的對(duì)象,因此在add函數(shù)中可以修改:

            
#!/usr/bin/env python
#coding=utf-8
 
 
 
def add(s):
  s += 'b'
  print "In add function :", s
 
 
if __name__ == "__main__":
  str_ = list("aaa")
  add(str_)
  print "In main function:", str_

          

輸出為:

            
In add function : ['a', 'a', 'a', 'b']
In main function: ['a', 'a', 'a', 'b']
          

下面的str_是不可修改的對(duì)象,因此在add函數(shù)中不能修改:

            
#!/usr/bin/env python
#coding=utf-8
 
 
 
def add(s):
  s += 'b'
  print "In add function :", s
 
 
if __name__ == "__main__":
  str_ = "aaa"
  add(str_)
  print "In main function:", str_

          
            
In add function : aaab 

In main function: aaa

          

關(guān)于python的復(fù)制

如果a=b的話, a和b的地址是相同的;如果只是想拷貝,那么就得用 a=b[:]。

!!!注意這一點(diǎn),這可是可以引起重大錯(cuò)誤的。。。

以上這篇python實(shí)現(xiàn)在函數(shù)中修改變量值的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 即墨市| 怀集县| 湘潭市| 延川县| 烟台市| 凤凰县| 高雄县| 商城县| 祁东县| 南部县| 民权县| 淳化县| 峨眉山市| 广宁县| 隆尧县| 陇南市| 鱼台县| 苏尼特左旗| 太仆寺旗| 合水县| 谷城县| 裕民县| 金寨县| 色达县| 濉溪县| 龙陵县| 潼关县| 八宿县| 阜康市| 临泉县| 贵港市| 横山县| 濮阳市| 兴隆县| 高淳县| 建始县| 乌审旗| 铁岭市| 开鲁县| 永川市| 遵义市|