看板 Python 關於我們 聯絡資訊
做了個小實驗 >>> a = range(5) >>> a [0, 1, 2, 3, 4] >>> b = a >>> b [0, 1, 2, 3, 4] >>> a[:] = range(6, 10) >>> a [6, 7, 8, 9] >>> b [6, 7, 8, 9] >>> 似乎a[:] = val 可以同時改變b指向的物件 ※ 引述《birdhackor (夜殘狼)》之銘言: : 各位好,最近在看 flask 原始碼的時候看到一些寫法我很好奇為甚麼要這樣寫 : 例如 https://github.com/mitsuhiko/flask/blob/master/flask/exthook.py : 49 行 : sys.meta_path[:] = [x for x in sys.meta_path if self != x] + [self] : 為什麼用 sys.meta_path[:] = ... 而不是 直接寫 sys.meta_path = ... 就好呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.28.171
tiefblau:這跟上一篇一樓應該是一樣意思吧?好奇為啥更新而不重賦值 03/19 23:50
Microscft:你不需要再設一個b,兩種不同方式用id(a)去看就知道了 03/20 00:45
Microscft:a[:]是用同一個id 就像上篇1F說的 03/20 00:45