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