python中不可变的变量
为什么存在不可变的变量类型呢??这样不是很麻烦?
如:
num=1
num=num+2
就上面的简单句子就产生了两次int对象,这不是使用python速度变慢??
难道修改一个变量的值比生成一个变量还要慢??
生成一个变量不是要做的工具更多。不理解
[解决办法]
> > 就上面的简单句子就产生了两次int对象,这不是使用python速度变慢??
慢不慢不是看出来的,试过就知道了。
> > 难道修改一个变量的值比生成一个变量还要慢??
不可变对象有很多好处,最明显的是对象共享:
str1 = "abc "
str2 = "abc "
str3 = "abc "
因为 "abc "是不可变的,现在只需要一个 "abc "对象。
如果 "abc "是可变的,修改str1的时候,为了不受影响,str2和str3必须拥有与str1独立的 "abc "副本,那样需要三个对象。
而且有些应用需要不可变的数据,比如字典的键值。如果学过hash的话应该就可以明白。