作家
登录

程序员必知的Python陷阱与缺陷列表

作者: 来源: 2017-08-04 05:40:07 阅读 我要评论

=time.time()): 
  •  
  • ... return when 
  •  
  • ... 
  •  
  • >>> report() 
  •  
  • 1500113234.487932 
  •  
  • >>> report() 
  •  
  • 1500113234.487932  
  • python docoment 给出了标准的解决办法:

    A way around this is to use None as the default, and explicitly test for it in the body of the function

    第二: x += y vs x = x + y

    一般来说,二者是等价的,至少看起来是等价的(这也是陷阱的定义 — 看起来都OK,但不必定精确)。

    1. >>> x=1;x += 1;print x 
    2.  
    3. 2  
    4.  
    5. >>> x=1;x = x+1;print x 
    6.  
    7.  
    8. >>> x=[1];x+=[2];print x 
    9.  
    10. [1, 2] 
    11.  
    12. >>> x=[1];x=x+[2];print x 
    13.  
    14. [1, 2]  

    呃,被光速打脸了?

    1. >>> x=[1];print id(x);x=x+[2];print id(x)  
    2.  
    3. 4357132800 
    4.  
    5. 4357132728 
    6.  
    7. >>> x=[1];print id(x);x+=[2];print id(x) 
    8.  
    9. 4357132800 
    10.  
    11. 4357132800  

    前者x指向一个新的对象,后者x在本来的对象是修改,当然,那种效不雅是精确的取决于应用处景。至少,得知道,二者有时刻并不一样

    第三,神奇的小括号–()

    小括号(parenthese)在各类编程说话中都有广泛的应用,python中,小括号还能表示元组(tuple)这一数据类型, 元组是immutable的序列。

    1. >>> a = (1, 2) 
    2.  
    3. >>> type(a) 
    4.  
    5. <type 'tuple'
    6.  
    7. >>> type(()) 
    8.  
    9. <type 'tuple' 

    但如不雅只有一个元素呢

    1. >>> a=(1) 
    2.  
    3. >>> type(a) 
    4.  
    5. <type 'int' 

    stackoverflow上有一个更恰当的例子来解释默认参数是在定义的时刻求值,而不是调用的时刻。

    神奇不神奇,如不雅要表示只有一个元素的元组,精确的姿势是:

    1. >>> a=(1,) 
    2.  
    3. >>> type(a) 
    4.  
    5. <type 'tuple' 

    第四:生成一个元素是列表的列表

    这个有点像二维数组,当然生成一个元素是字典的列表也是可以的,更通俗的说,生成一个元素是可变对象的序列

    很简单嘛:

    1. >>> a= [[]] * 10 
    2.  
    3. >>> a 
    4.  
    5. [[], [], [], [], [], [], [], [], [], []] 
    6.  
    7. >>> a[0].append(10) 

    8.   推荐阅读

        有效促进物联网安全的5大策略

      跟着物联网设备的赓续出现,用户所碰到的严重的物联网安然问题不容忽视。分析师和专家经常评论辩论这个严重问题,人们须要采取积极主动的行动来竽暌功对和解决。根据调研机构Gartner公司的>>>详细阅读


      本文标题:程序员必知的Python陷阱与缺陷列表

      地址:http://www.17bianji.com/lsqh/36531.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)