Python 使用列表作為函式預設值且為空

2022-09-01 13:21:18 字數 555 閱讀 9686

python函式中引數預設值為乙個列表且為空時,該列表只初始化一次,而不是像其他程式,每次初始化都為空。

3:     print my_list
4:
5: printlist()
6: printlist()
7: printlist()

測試結果:

2: ['list', 'list']
3: ['list', 'list', 'list']

為了避免這種情況,可以使用如下方法:

2:

if my_list is none:

3:        my_list =
5:     print my_list
6:
7: printlist()
8: printlist()
9: printlist()

測試結果:

2: ['list']
3: ['list']

python不要使用可變物件作為引數的預設值

幽靈乘客例子 如上 如果為空時,bus2和bus3引用的是相同的乙個list,就會造成粗錯誤 實際工作中,如果不想改變某個引數值,那麼通過以上這種賦值也會改變 解決方式self.passenger list passenger 相當於把list passenger passenger 舉個例子 a和...

Python之在函式中使用列表作為預設引數

本文將介紹筆者在工作中遇到的python的乙個坑,那就是使用列表作為預設引數。我們知道,在python中,列表 list 是可變物件,所以列表的內容可能會在函式內改變。另乙個需要注意的是,使用列表作為函式的預設引數時,列表的內容變化情況。首先,我們看以下的 例子 def add x,lst if x...

Python列表作為引數

在將列表作為引數傳遞給函式的時候,實際上是傳遞的引用。def ref someparameter 99 singers 阪井泉水 泰勒斯威夫特 阿黛爾 ref singers print singers 結果 阪井泉水 泰勒斯威夫特 阿黛爾 99 同時,將列表賦給乙個變數時,實際上是將列表的引用付給...