专栏名称: 网络大数据
打造中国最专业的网络大数据科学门户网站,提供新闻动态、研究资料、测量工具、数据报告、在线测量等各项信息及服务,供IDC,CDN,ICP和普通大众共同学习进步。
目录
相关文章推荐
数据派THU  ·  【NeurIPS2024】通过分解编码和条件 ... ·  6 天前  
数据派THU  ·  NeurIPS 2024 | ... ·  4 天前  
天池大数据科研平台  ·  致敬热爱技术的你!AFAC2024大赛获奖方 ... ·  5 天前  
CDA数据分析师  ·  【干货】如何进行目标用户分析? ·  1 周前  
51好读  ›  专栏  ›  网络大数据

Python 代码在实践过程中的经验总结

网络大数据  · 公众号  · 大数据  · 2017-05-12 17:41

正文

关于 Python 脚本,在具体的实践过程中经常会遇到一些问题,下面将其总结,便于使用。考虑使用 Logger(logger 怎么配置,需要输出哪些信息 — 可以反向考虑,比方说看到这个 logger 的时候首先要想应该了解什么信息)

传递的数据结构如何考虑(是否对调用方有先验知识的要求,比如返回一个 Tuple,则需要用户了解 tuple 中元素的顺序,这样情况是否应该进行封装;),数据结构定义清楚了,很多东西也就清楚了。


如何操作数据库(可以学习 sqlalchemy,包括 core 和 orm 两种 api)


异常如何处理(异常应该分开捕获 — 可以清楚的知道什么情况下导致的,异常之后应该打印日志说明出现什么问题,如果情况恶劣需要进行异常再次抛出或者报警)


所有获取资源的地方都应该做 check(a. 没有获取到会怎么办;b.获取到异常的怎么办)


所有操作资源的地方都应该检查是否操作成功



每个函数都应该简短,如果函数过长应该进行拆分(有个建议值,函数包含的行数应该在 20-30 行之间,具体按照这个规范做过一次之后就会发现这样真好)


使用 class 之后,考虑重构 __str__ 函数,用户打印输出(如果不实现 __str__,会调用 __repr__ ),如果对象放到 collection 中之后,需要实现 __repr__ 函数,用于打印整个 collection 的时候,直观显示。


如果有些资源会发生变化,可以单独抽取出来,做成函数,这样后续调用就可以不用改变了


附上一份 Python2.7 代码(将一些私有的东西进行了修改)



其中 logger 配置文件如下(对于 Python 的 logger,官方文档写的非常好,建议读一次,并且实践一次)


来源:36大数据