python實(shí)現(xiàn)在函數(shù)中修改變量值的方法
和其他語(yǔ)言不一樣,傳遞參數(shù)的時(shí)候,python不允許程序員選擇采用傳值還是傳引用。Python參數(shù)傳遞采用的肯定是“傳對(duì)象引用”的方式。
實(shí)際上,這種方式相當(dāng)于傳值和傳引用的一種綜合。如果函數(shù)收到的是一個(gè)可變對(duì)象(比如字典或者列表)的引用,
就能修改對(duì)象的原始值--相當(dāng)于通過(guò)“傳引用”來(lái)傳遞對(duì)象。如果函數(shù)收到的是一個(gè)不可變對(duì)象(比如數(shù)字、字符或者元組)的引用,
就不能直接修改原始對(duì)象--相當(dāng)于通過(guò)“傳值'來(lái)傳遞對(duì)象。
python一般內(nèi)部賦值變量的話,都是傳個(gè)引用變量,和C語(yǔ)言的傳地址的概念差不多??梢杂胕d()來(lái)查詢內(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è)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python畫(huà)一個(gè)圣誕樹(shù)實(shí)現(xiàn)示例
這篇文章主要為大家介紹了使用python畫(huà)一個(gè)圣誕樹(shù)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05python實(shí)現(xiàn)文字轉(zhuǎn)語(yǔ)音的項(xiàng)目實(shí)踐
pyttsx3是一個(gè)Python庫(kù),用于文字轉(zhuǎn)語(yǔ)音的功能,它可以將文本轉(zhuǎn)換為語(yǔ)音,并使用不同的音頻引擎進(jìn)行輸出,本文就來(lái)詳細(xì)的介紹一下用法,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08pycharm如何使用anaconda中的各種包(操作步驟)
這篇文章主要介紹了pycharm如何使用anaconda中的各種包,本文通過(guò)操作步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07TensorFlow低版本代碼自動(dòng)升級(jí)為1.0版本
這篇文章主要介紹了TensorFlow低版本代碼自動(dòng)升級(jí)為1.0版本,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Python中關(guān)鍵字global和nonlocal的區(qū)別詳解
這篇文章主要給大家介紹了關(guān)于Python中關(guān)鍵字global和nonlocal的區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09Cpython3.9源碼解析python中的大小整數(shù)
這篇文章主要介紹了Cpython3.9源碼解析python中的大小整數(shù),在CPython中,小整數(shù)對(duì)象池是一種優(yōu)化機(jī)制,用于減少對(duì)常用小整數(shù)的內(nèi)存分配和銷(xiāo)毀開(kāi)銷(xiāo),需要的朋友可以參考下2023-04-04Python實(shí)現(xiàn)七大查找算法的示例代碼
這篇文章主要介紹了Python實(shí)現(xiàn)七大查找算法的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04