列表推导内存泄漏问题
在Python2中的列表推导式中for关键字的赋值操作会对声明的变量产生影响
例如下边的Python2控制台交互
>>> x = 'init'
>>> y = [x for x in 'ABC']
>>> x
C
列表推导中的变量x将声明的x覆盖了。这个问题在python3中已经被修复了,表达式内部的变量和赋值,只在局部起作用,表达式上下文内的同名变量还是可以正常引用。
这是Python3的代码
>>> x = 'init'
>>> y = [x for x in 'ABC']
>>> x
init
>>>y
['A', 'B', 'C']
【列表推导内存泄漏问题】x的值被保留了,列表推导也创建了正确的列表
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Java内存泄漏分析系列之二(jstack生成的Thread|Java内存泄漏分析系列之二:jstack生成的Thread Dump日志结构解析)
- iOS内存对齐原则
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 内存管理概念与原理以及解决办法
- c语言|一文搞懂栈(stack)、堆(heap)、单片机裸机内存管理malloc
- C语言学习(bit)|16.C语言进阶——深度剖析数据在内存中的存储
- 内存管理
- Java内存溢出及解决
- js类型转换和内存