python不要使用可變對象做爲參數的默認值

幽靈乘客例子:對象

blog

 

 

如上:若是爲空時,bus2和bus3引用的是相同的一個list,就會形成粗錯誤it

 實際工做中,若是不想改變某個參數值,那麼經過以上這種賦值也會改變引用

解決方式self.passenger=list(passenger),至關於把list(passenger)=passengerim

舉個例子:d3

a和c引用的是相同的list對象  但b已經不是另一個新對象的引用了img

a和c同時改變,b的改變是獨立的sse

 

 

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------co

若是必定要使用?應該怎樣定義可變類型默認值呢工作

def __init__(self,passenger=None):
if passenger ==None:
self.passenger=[]

 這樣的話,就是爲每一個空值分配不一樣的對象

相關文章
相關標籤/搜索