亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Python中傳遞值

在Python中傳遞值

皈依舞 2019-08-30 17:23:34
當你將一個像list,array這樣的集合傳遞給python中的另一個函數時,是否會復制它,或者它只是一個指針?
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

Python 按值傳遞對象的引用。

Python按值傳遞對象的引用(如Java),Python中的所有內容都是對象。這聽起來很簡單,但是你會注意到一些數據類型似乎表現出按值傳遞的特征,而其他數據似乎就像傳遞引用一樣...這是什么交易?

理解可變和不可變對象很重要。某些對象(如字符串,元組和數字)是不可變的。在函數/方法中更改它們將創建一個新實例,并且不會更改函數/方法之外的原始實例。其他對象(如列表和詞典)是可變的,這意味著您可以就地更改對象。因此,更改函數/方法內的對象也會更改外部的原始對象。


查看完整回答
反對 回復 2019-08-30
?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

事實是,整個參考/值概念將不適合python。Python沒有變量的“價值”。Python只有引用對象的對象和名稱。


因此,當您調用函數并在括號內放置“名稱”時,如下所示:


def func(x): # defines a function that takes an argument

    ... # do something here


func(myname) # calling the function

myname傳遞指向的實際對象,而不是名稱 myname 本身。在函數內部,給出了另一個name(x)來引用傳遞的同一個對象。


您可以修改函數內部的對象(如果它是可變的),但您無法更改外部名稱指向的對象。就像你做的那樣


anothername = myname

因此,我可以回答你的問題:


它是“按值傳遞”,但所有值都只是對象的引用。


查看完整回答
反對 回復 2019-08-30
  • 3 回答
  • 0 關注
  • 500 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號