作者jlhg (jlhg)
看板Python
标题Re: [问题] 写法疑问
时间Wed Mar 19 23:31:15 2014
做了个小实验
>>> 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
1F:推 tiefblau:这跟上一篇一楼应该是一样意思吧?好奇为啥更新而不重赋值 03/19 23:50
2F:→ Microscft:你不需要再设一个b,两种不同方式用id(a)去看就知道了 03/20 00:45
3F:→ Microscft:a[:]是用同一个id 就像上篇1F说的 03/20 00:45