亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

python中參數(shù)傳遞

Wildcard / 1374人閱讀

摘要:在編程語言中,函數(shù)的參數(shù)傳遞有兩種情況按值類型傳遞調(diào)用該函數(shù),傳入一個變量,其實傳入的是該變量的一個副本,該變量在函數(shù)中發(fā)生變化,不影響函數(shù)外面該變量。

在編程語言中,函數(shù)的參數(shù)傳遞有兩種情況:

按值類型傳遞

num = 10
def double(arg):
    arg=arg*2
    print(arg)

double(num)
調(diào)用該函數(shù),傳入一個變量,其實傳入的是該變量的一個副本,該變量在函數(shù)中發(fā)生變化,不影響函數(shù)外面該變量。

按引用類型(地址)傳遞

  def change(arg):
       arg.append("More data")
       print(arg)
  
 saying = [42,34,55]
 change(saying)
調(diào)用該函數(shù),傳入一個變量,但是函數(shù)內(nèi)部卻是維護該變量的一個指向鏈接,鏈接到函數(shù)外面的這個變量;當傳入函數(shù)的這個變量在函數(shù)內(nèi)部發(fā)生改變,直接影響到外面的最初變量,因為有指向關(guān)系。

python中的函數(shù)參數(shù)既支持按值調(diào)用,也支持按引用調(diào)用。

python中的變量是對象引用:變量存儲的值是內(nèi)存地址。當函數(shù)被調(diào)用的時候,解釋器會查看傳入的變量(內(nèi)存地址)指的那個指的類型,如果是一個可變類型的值,就按照引用傳遞變量;如果是一個非可變類型的值,就考慮按照值傳遞變量。


可變類型:字典dict,列表list,集合set:

傳入函數(shù)中的變量,函數(shù)內(nèi)部的修改都會反映到函數(shù)外面,即最初始的變量會受到影響,畢竟這些初始的變量是可變類型。

不可變類型:字符串srt,整數(shù)int,元組trulp:

在這中,函數(shù)對變量的任何修改都是函數(shù)私有的,不會反映到函數(shù)外面,由于這些變量是不可變的,所以不能修改。

例外:

def double(arg):
  print("before: ",arg)
  arg = arg * 2
  print("After: ",arg)

根據(jù)上面所說的,為什么這個函數(shù)里面的參數(shù),傳入的一個可變類型,函數(shù)內(nèi)部發(fā)生了改變,結(jié)果卻沒有反映到函數(shù)外面呢?

我們考慮到這條語句:arg = arg*2

首先,傳入的變量,先執(zhí)行arg*2,所產(chǎn)生的新的變量(新對象的引用),重新賦值給原先的變量arg,覆蓋其原先的引用,導致原先的變量arg與外面初始變量之間的聯(lián)系斷了。既然關(guān)系斷了,那么函數(shù)里面的arg 的改變,沒有反映出來,所以并沒有影響到函數(shù)外面的變量。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/41957.html

相關(guān)文章

  • python調(diào)用python腳本時參數(shù)傳遞

    摘要:前言為什么有調(diào)用腳本呢直接不就行了嗎這里主要是用于遠程調(diào)用時這種調(diào)用在運維場景中是比較多的,類似下面這樣的調(diào)用遠程調(diào)用這里有個問題就是傳遞較多參數(shù)時如何傳遞比如傳遞字典傳遞列表等我們可以發(fā)現(xiàn),如果直接傳遞,往往傳過去后不能很好的解析因為這 前言: 為什么有python調(diào)用python腳本呢?直接import不就行了嗎?這里主要是用于遠程調(diào)用時,這種調(diào)用在運維場景中是比較多的,類似下面這...

    yankeys 評論0 收藏0
  • 關(guān)于函數(shù)參數(shù)傳遞,80%人都錯了

    摘要:另外說下,函數(shù)的返回值,也相當于是一次賦值。只不過,這時候是把函數(shù)內(nèi)部返回值所指向的對象,賦值給外面函數(shù)的調(diào)用者輸出函數(shù)結(jié)束后,這個標簽雖然不存在了,但所指向的對象依然存在,就是指向的新對象。 還記得上一次關(guān)于變量作用域文章 : Crossin:全菊變量和菊部變量zhuanlan.zhihu.comshowImg(https://segmentfault.com/img/remote/...

    X_AirDu 評論0 收藏0
  • 【編程語言】Python參數(shù)傳遞、返回值、淺拷貝、深拷貝

    摘要:作者本文原載于,不允許轉(zhuǎn)載的參數(shù)傳遞的參數(shù)傳遞,無法控制引用傳遞還是值傳遞。對于不可變對象數(shù)字字符元組等的參數(shù),更類似值傳遞對于可變對象列表字典等,更類似引用傳遞。 作者:LogM 本文原載于 https://segmentfault.com/u/logm/articles ,不允許轉(zhuǎn)載~ 1. Python 的參數(shù)傳遞 Python的參數(shù)傳遞,無法控制引用傳遞還是值傳遞。對于不可變對...

    PascalXie 評論0 收藏0
  • Python函數(shù)

    摘要:定義的函數(shù)定義使用通過返回執(zhí)行結(jié)果常用內(nèi)置常用內(nèi)置函數(shù)待補充絕對值計算判斷是否是類型列表中的值強制類型轉(zhuǎn)換小數(shù)時僅保留整數(shù)位強制類型轉(zhuǎn)換編碼轉(zhuǎn)換強制類型轉(zhuǎn)換多值的函數(shù)是可以返回多值的定義調(diào)用可以看到,返回的多值是以形式輸出的參數(shù)的參數(shù)支持默 定義 Python的函數(shù)定義使用def def func_name(x): return hello world //通過return 返...

    elisa.yang 評論0 收藏0
  • 講講Python的函數(shù)傳遞問題 【文末送書】

    摘要:文末評論送書,學委會用這個抽獎程序來進行嚴格抽獎,周六晚上點整定時抽獎并視頻公布出來,敬請期待。本文講的函數(shù)值傳遞問題,是寫程序經(jīng)常遇到,特別的是動態(tài)參數(shù)在高級框架中使用很廣泛。 ...

    luckyw 評論0 收藏0
  • Python: 函數(shù)參數(shù)魔法

    摘要:在調(diào)用函數(shù)時,我們可以給該函數(shù)傳遞任意個參數(shù),包括個參數(shù)傳遞個參數(shù)傳遞個參數(shù)傳遞個參數(shù)傳遞個參數(shù)上面的表示任意參數(shù),實際上,它還有另外一個用法用來給函數(shù)傳遞參數(shù)。應(yīng)該使用不可變對象作為函數(shù)的默認參數(shù)。 函數(shù)參數(shù) 在 Python 中,定義函數(shù)和調(diào)用函數(shù)都很簡單,但如何定義函數(shù)參數(shù)和傳遞函數(shù)參數(shù),則涉及到一些套路了??偟膩碚f,Python 的函數(shù)參數(shù)主要分為以下幾種: 必選參數(shù) 默認參...

    zxhaaa 評論0 收藏0

發(fā)表評論

0條評論

Wildcard

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<