zoukankan      html  css  js  c++  java
  • Python 规范性

    Python 规范性


    误用builtin关键字,例如str/len……

    from xxx import *
    污染命名空间,可能发生命名重叠

    type低效使用
    低情商:

    type(val) is str
    

    高情商:

    isinstance(val, str)
    

    对于想要判断的变量可能存在多个类型时,可使用tuple

    isinstance(val, (str, list, int))
    

    不使用迭代器
    xrange -> range
    items -> iteritems
    keys -> iterkeys
    values -> itervalues
    既要遍历索引,又要遍历元素,使用enumerate

    Python 性能规范


    问题:
    大量字符串拼接、切片
    大量if/else分支判断造成消耗
    对于属性过深的查询,a.b.c.d.e.就会使Python在底层进行一次查表操作

    解决:
    join代替字符串+=,减小底层字符串开销
    恰当使用容器
    多用list comprehension,列表推导式比for循环和map都要快
    for很慢,有时可用map/reduce/filter/list comprehension代替
    多用迭代器
    尽量使用builtin函数,不自己手搓,因为builtin函数底层是C写的

  • 相关阅读:
    Go 指针
    Go 字符串
    Go Maps
    Go 可变参数函数
    Go 数组和切片
    pyqt5实现窗口跳转并关闭上一个窗口
    spy++查找窗口句柄
    Python中Tk模块简单窗口设计
    pyqt5无边框拖动
    pyqt5 GUI教程
  • 原文地址:https://www.cnblogs.com/KirinSB/p/14577325.html
Copyright © 2011-2022 走看看