【Python】我精心設(shè)計的默認(rèn)參數(shù),怎么就出問題了呢?
2022-11-30 20:05 作者:最懂?dāng)?shù)碼的小輝 | 我要投稿

最懂你心的UP課代表來啦??????
【Python】我精心設(shè)計的默認(rèn)參數(shù),怎么就出問題了呢?
目錄
一、問題
二、問題原理
三、官方解釋
四、如何解決
一、問題
?
00:35
?初始玩家叫P1
第二個玩家P2
一個道具charles
一個道具sword

打印Alice的道具
運行程序發(fā)現(xiàn)Alice有個armor和sword

二、問題原理
?
02:44
?Python做默認(rèn)參數(shù)時只會把參數(shù)evaluate一遍
只求一次值
把這個值當(dāng)作默認(rèn)參數(shù)

打印ID print.self
再運行程序
兩個ID一模一樣
第三個ID不一樣
說明Alice Bob共享了一個list

三、官方解釋
?
04:15
?當(dāng)你使用一個mutable的默認(rèn)參數(shù)時
你要理解你在干什么
大部分情況達不到理想效果

四、如何解決
?
04:52
?把默認(rèn)參數(shù)變?yōu)镹one
is None

標(biāo)簽: