python 编程,应该养成哪些好的习惯?
无缓冲输出
python -u 
sys.stdout.flush()
性能分析
python -m cProfile -o prof.txt my_script.py
import pstats
p = pstats.Stats('prof.txt')
p.strip_dirs().sort_stats('time', 'cumulative').print_stats()
#p.strip_dirs().sort_stats('time', 'cumulative').print_callees()
导入模块路径
import os
print os.__file__
输出异常行数
print >>sys.stderr, sys.exc_info()[-1].tb_lineno, str(e)
查看调用栈
''.join(traceback.format_stack(frame))
 
import sys
from numbers import Number
from collections import Set, Mapping, deque
try: # Python 2
    zero_depth_bases = (basestring, Number, xrange, bytearray)
    iteritems = 'iteritems'
except NameError: # Python 3
    zero_depth_bases = (str, bytes, Number, range, bytearray)
    iteritems = 'items'
 
def getsize(obj_0):
    """Recursively iterate to sum size of object & members."""
    def inner(obj, _seen_ids = set()):
        obj_id = id(obj)
        if obj_id in _seen_ids:
            return 0
        _seen_ids.add(obj_id)
        size = sys.getsizeof(obj)
        if isinstance(obj, zero_depth_bases):
            pass # bypass remaining control flow and return
        elif isinstance(obj, (tuple, list, Set, deque)):
            size += sum(inner(i) for i in obj)
        elif isinstance(obj, Mapping) or hasattr(obj, iteritems):
            size += sum(inner(k) + inner(v) for k, v in getattr(obj, iteritems)())
        # Check for custom object instances - may subclass above too
        if hasattr(obj, '__dict__'):
            size += inner(vars(obj))
        if hasattr(obj, '__slots__'): # can have __slots__ with __dict__
            size += sum(inner(getattr(obj, s)) for s in obj.__slots__ if hasattr(obj, s))
        return size
    return inner(obj_0)
 
Immutable object
如果不注意可能出现意外数据变多、变少的情况。可能导致任务执行过久、输出数据偏少或取值雷同。

最新文章

  1. [Python学习笔记1]Python语言基础 数学运算符 字符串 列表
  2. Delphi Virtual String Tree 基本用法
  3. 探索javascript----我对渐变轮播图的理解
  4. 『Python』 爬取 WooYun 论坛所有漏洞条目的相关信息
  5. #include <process.h>
  6. coreGraphs和动画
  7. centos系统php5.6版本安装gd扩展库
  8. [pytorch修改]npyio.py 实现在标签中使用两种delimiter分割文件的行
  9. genetic model
  10. 【转】Extjs2.2.1 DateField 变形的问题解决方案
  11. Dubbo实践笔记
  12. JavaScript之DOM操作(二)
  13. python学习(21) smtp发送邮件
  14. JavaScript与DOM(下)
  15. PHP(六)PHP和HTML混合的一种形式
  16. 关于log4j知识
  17. hdu2444 The Accomodation of Students(推断二分匹配+最大匹配)
  18. CMDB实现的四种方式
  19. Spring注解(AOP)
  20. Git的使用规范(二)

热门文章

  1. SDUT 3375 数据结构实验之查找三:树的种类统计
  2. 使用Notepad++与Dev_c++编译
  3. 《Effective Java》第11章 序列化
  4. 《Maven实战》笔记-3-Maven仓库
  5. 在 Java 的反射中,Class.forName 和 ClassLoader 的区别
  6. C/C++中char* p = "hello" 和 const char* p = "hello"的区别
  7. 对XML文档进行修改
  8. spring mvc常用注解标签
  9. Python学习第三方库Requests: 让 HTTP 服务人类
  10. Python3中的Json与Pickle