微信号:grzlwx

介绍:光荣之路官方资讯

编写高质量代码--改善python程序的建议(一)

2016-01-07 23:18 光荣之路

吴老的《selenium webdriver 实战宝典》出版了!

原文发表在我的博客主页,转载请注明出处!

初衷

python是一个入门十分容易的编程语言,但是想要写好python却是一件不容易的事情,如果不是专业使用python的人,只是将python作为一个脚本语言或者用来处理数据,到了掌握基本的语法之后,便不再寻求进步。但是相信每个学习python的人都知道pythonic这个单词,这个词语很难定义,全靠心领神会,但大家心中都认同Tim Peters的《The Zen of Python》中提到的几点:

  • 美胜丑,显胜隐,简胜杂,杂胜乱,平胜陡,疏胜密

  • 找到简单问题的一个方法,最好是唯一的方法

  • 难以解释的实现,源自不好的主意

使用python已经很久了,发现自己处在了一个上升的瓶颈,而我坚信读书是解决这种问题的不二法门,所以写一些读书笔记,当然书中的有些内容我不敢苟同,所以也会加入自己的甄别和想法。


建议一:写pythonic代码

  • 代码风格
    举几个常见的例子,相信大家就会理解
    两个变量交换:

    a, b = b, a

    遍历容器:

    for i in container:do_sth_with(i)

    安全的处理文件:

    with open(path,"r") as f: do_sth_with(f)
  • 标准库
    写pythonic需要对标准库有充分的理解,特别是内置函数和内置数据类型,比如,对于字符串格式化,一般写作这样:

    print 'Hello %s!' % ('Tom',)

    这样非常影响可读性,数量多了之后,很难清楚哪一个占位符对应哪一个参数,所以最好这样写:

    print 'Hello %(name)s!' % {'name':'Tom'}

    这样其实已经相当pythonic,但是想想%占位符,其实是从学习C语言的时候就深深扎根头脑了,在python中,还有更加pythonic的写法。

    print '{greet} from {language}.'.format(greet = 'Hello world', language = 'Python')

    其中str.format()非常清晰的表明了语句的意图,称为python最为推荐的字符串格式化方法。

  • pythonic的库或者框架
    包和模块的命令采用小写、单数形式,而且短小。
    包通常仅作为命名空间,如只包含空的__init__.py文件。


建议二:理解python和C语言的不同之处

  • “缩进”与“{}”

  • '与"

  • 三元操作符 “?:”

    python: X if X<Y else YC: X<Y:X:Y
  • swith...case

上述的区别相信使用过python的人都清楚,所以不再赘述


建议三:在代码中适当添加注释
python中有三种形式的代码注释:块注释、行注释以及文档注释

  • 使用块注释或者行注释的时候仅仅注释哪些复杂的操作、算法,或者难以理解,不能一目了然的代码

  • 给外部可访问的函数和方法(无论简单与否)添加文档注释。注释要清楚的描述方法的功能,并对参数、返回值以及可能发生的异常进行说明,使得外部调用它的人员仅仅看文档注释就能正确使用。较为复杂的内部方法也需要进行注释。推荐的函数注释如下:

def FuncName(parameter1, parameter2):""" Describe what this function does: #such as "Find whether the special string is in the queue or not" Args: parameter1:parameter type, what is this parameter used for parameter2:parameter type, what is this parameter used for Returns: return type, return value """ function body ··· ···
  • 头文件中包含copyright申明、模块描述等,如有必要,可以考虑加入作者信息以及变更记录。

""" Licensed Materials - Property of CorpA (C) Copyright A Corp. 1999, 2011 All Rights Reserved Copyright statement and purpose... -------------------------------------------------------- File name : Description : Author: Change Activity: -------------------------------------------------------- """

<未完待续>

(作者:cotyb 来源:http://www.cnblogs.com/cotyb/p/5086771.html)

公益传播测试知识、技能与正能量!感谢作者!
分享测试生活,思考测试人生!欢迎投稿!
文章图片来自网络,如有侵权请见谅,请联系我们妥善处理。
735821166@qq.com

光荣之路
软件测试培训



官网:www.gloryroad.cn

微信公众号:gloryroadtrain

性能测试QQ群:415987441
测试招聘QQ群: 203715128
自动化3群QQ: 371211499

Python群:457561756

 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 甲骨文称 Google 毁掉了 Java 的市场 【Container讲师专访】容器化技术在长安汽车中的实践 1个名字就换8400元?!! GitHub Top 100的Android开源库 媳妇儿是个IT牛人是种什么体验???