码迷,mamicode.com
首页 > 编程语言 > 详细

python问题记录

时间:2016-03-28 15:22:10      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

今天才python群里看到一个问题

python2.7:

  

  L = [x for x in hello‘]

  
print L
  
print x

 

 

 

python3.4:

  

  L = [ x for x in hello ] 
  print (L)   print (x)

 

 

 

两者都可以打印出

 

    L = [h, e, l, l, o]

 

 

 

 

但是只有python2.7可以打印出变量x的值: 

   x = o

 

 

 

  

   >>> L = [x for x in hello]
  >>> print L
  [h, e, l, l, o]
  >>> print x
  o
  >>> 

 

 

 

 

python3.4中则显示x变量没有定义

  

  >>> L = [x for x in hello]
  >>> print (L)
  [h, e, l, l, o]
  >>> print (x)
  Traceback (most recent call last):
    File "<pyshell#2>", line 1, in <module>
      print (x)
  NameError: name x is not defined
  >>> 

 

 

 

就是这么一个问题,我通过pycharm单步调试了一下,发现python2.7执行完列表解析语句后,变量x任然存在。

而在python3.4中,执行完列表解析后,变量x则消失了。

下面贴出我用pycharm分别在不同环境下调试的结果

python2.7:

 

技术分享

python3.4:

 

技术分享

 

我想这可能是python3.4基于安全考虑,避免变量占用内存的情况。

另一方面,也保证了在后面使用变量的情况下不会出现错用变量的现象。

 

2016-03-28     13:26:34

python问题记录

标签:

原文地址:http://www.cnblogs.com/xautxuqiang/p/5328700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!