PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Python
[問題] def函式之輸入變數會隨函式內容改變
作者:
jasonhsu14
(小健人)
2020-07-16 09:55:26
各位前輩好
小弟有一個新手級問題
先上程式碼
def xxx(d):
d[0]=123
return d
a=[1,2]
b=xxx(a)
在程式碼中,我設定變數a為[1,2]
但將a丟到def中,得到b的同時,a也會隨之改變
想請問造成這個現象的原因
是否為 a是一個全域變數,而在函式中的d是a的shallow copy所致?
若不是的話,還盼望版友們能指導小弟造成此現象的原因為何
先謝謝版友撥空閱讀我的疑問
作者:
IAMPF
(PF)
2020-07-16 09:59:00
因為你是送了reference過去
作者:
TitanEric
(泰坦)
2020-07-16 10:16:00
python是call by object list相當於傳reference
作者:
s0914714
(YA)
2020-07-16 10:52:00
要改成y=d[:] 一般來說要傳list會寫成 def xxx(d=None):
作者:
kenduest
(小州)
2020-07-16 10:52:00
用 y=d[:] 複製一份,或是你要用 y=copy.copy(d)
作者:
s0914714
(YA)
2020-07-16 10:53:00
函式裡面判斷if not d成立 d = []
作者: bugbug777 (sil)
2020-07-16 10:55:00
shalow/deep copy, reference
作者:
as30385438
(LCT)
2020-07-18 01:27:00
python中alway是pass by pointer,不會有不同情況
繼續閱讀
[問題] xgboost模型可視化
interwise613
[問題] spyder variable explorer沒辦法出現資料
jasia22
[問題] imwrite error
s1010257
[問題] Selenium save_screenshot 解析度問題
kiey
[問題] 用for loop讀取label值
yimean
[閒聊] Python的 list中文該如何解釋?
s90104123
Re: [問題] 中文日期
yvonne2448y
[問題] 中文日期
yvonne2448y
[問題]一個Frame裡面如何建立多個Option menu
yimean
[問題] 有沒有高手可以直接教我爬抓資料2000p
wwman
Links
booklink
Contact Us: admin [ a t ] ucptt.com