Re: [問題] 寫法疑問

作者: jlhg (jlhg)   2014-03-19 23:31:15
做了個小實驗
>>> 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 = ... 就好呢?
作者: tiefblau (tiefblau)   2014-03-19 23:50:00
這跟上一篇一樓應該是一樣意思吧?好奇為啥更新而不重賦值
作者: Microscft (小軟哥)   2014-03-20 00:45:00
你不需要再設一個b,兩種不同方式用id(a)去看就知道了a[:]是用同一個id 就像上篇1F說的

Links booklink

Contact Us: admin [ a t ] ucptt.com