Python 是一门灵活的语言,但灵活的同时也可能会在不经意间给我们带来麻烦。今天要和大家分享的是关于作用域和全局变量引发的“血案”。我认为很有意思并值得我们去深思。
注意Python的共享引用
Python中的共享引用是随处可见的,这也就意味着随时注意该行为是非常重要的,否则就可能出错。假设我们需要创建一个大小为5x5的矩阵并以数字0对矩阵进行初始化,根据Python的一些特点和使用技巧,很可能会这样来做:>>> matrix = [[0] * 5] * 5
>>> for row in matrix:
print row
[0, 0, 0, 0, 0]
[0, ...