登陆注册
71628900000012

第12章 编码风格和文档化工作

程序的建立要做到容易阅读,也容易理解。在这一个标准上,好的程序员在脑子里都是首先在乎他们的编码风格。开发这样一种代码风格是为了达到既可以让人,也可以让电脑保持良好地沟通,尤其是在程序的设计方面尤为重要。

当然有许多不同的编码风格,对于 Python 来说,官方标准就是 PEP8 这份文档了。你们可以自行查看官方文献来了解细节,我挑选主要的几项来介绍一下:

第一:

Python 代码块通常都是用 4 个空格来形成缩进句法。高度重视不要把空格与 Tab 制表符混用,因为不同的系统对待处理制表符时采用的宽度不一样,并且 Python 解释器不会把 Tab 和空格看成一个对象。许多纯文本编辑器都具有自动把 Tab 键转换成空格形式的功能。

第二:

使用顾名思义的识别符命名法。在选择用什么名字的时候,要能够让人读的出来,名字也能反映出行为、责任、或数据的含义。其中包括了:

类的名字( Python 的内置类型名也是如此)使用名词单数形式,首字母要大写。如果使用了多个单词的话,我们会遵循 CamelCase 驼峰体样式来书写类名,也就是每个单词的首字母都要大写,并紧紧相连,不需要使用下划线作为连接符。

函数的名字( Python 的内置函数名也是一样的)也涉及一个类里定义方法的名字,它们都采用全小写形式。如果使用多个单词,使用单个下划线来做连接点。函数的名字通常使用动词,这样才反映出函数或方法是做什么的。当然这里也有一种情况就是,如果你的函数或方法只是负责返回一个值,那么可以使用名词起名。

名字都是用来识别单个对象的,就是说要避免重名的现象,否则会出现歧义。例如,参数名、实例变量名、本地变量名,都采用全小写名词来命名。当然也会有用单个大写字母来命名的,例如一个数据结构的命名采用了 T 来说明是一种树状结构。

识别符有许多,其中有用来表示一种常量值,这也是一种传统用法,采用了全大写与单个下划线组合形式,这样的名字意味着是一种常量。

在命名的时候也会看到使用下划线作为名字的开头部分,这种命名风格会体现在封装识别符中,如此一来以单下划线开始的名字会作为一个类或一个模块的内部用法,而不会默认作为公开接口的组成部分。

第三:

在写代码时可以使用#井号来些代码中的注释内容,从而提升代码中歧义或不明白现象的解释。

注释的内容可以使用单行注释,也可以多行注释,这就根据你要说的话多少来自有裁决。

多行注释依然使用的是#号字符,而不是多行字符串。有一些代码中常会使用多行字符串来写多行注释,这样不是一个好的习惯。下面会介绍一下多行字符串的文档化功用。

文档化工作中,Python 提供了集成支持,意思就是可以直接在源代码中书写文档化内容,这种机制就叫做“文档字符串”。采用的是三引号对儿句法,这样可以书写多行文本内容,主要使用在如下三个地方:

第一个文档化:模块文档

当文档字符串作为模块的第一个语句时,会称为模块的帮助文档内容。书写文档字符串的格式是,第一行会作为总结性的标题内容,然后增加一个空行,接着新起一行来写详细的内容。

第二个文档化:函数文档

第三个文档化:类的文档和方法的文档

文档字符串的内容会可以直接被 Python 中的 help()内置函数引用,现在你们知道帮助文档的内容来自哪里了吧。文档字符串的官方标准是 PEP257 文献,当然也有一些文档化工具,这里我们就不介绍了。

同类推荐
  • 快穿之渣女的求爱攻略

    快穿之渣女的求爱攻略

    一心要把自己在30岁前嫁出去的朱晓晓,在表妹看热闹不嫌事大的窜得下,与官方分配给自己的感情接收器绑定了,在经历了刚想做什么就被抓回来,官配被搞死自己去救,救一半心愿人不想实现心愿了任务失败等等的乌龙事件后,朱晓晓终于迎来了一个真真正正跟官配恋爱的完整世界,只不过这一次她要失去所有的记忆………甜宠快穿,穿越,无脑爽文,双洁,1V1主角:朱晓晓,男主:赵十七
  • 我有一间科技屋

    我有一间科技屋

    古有万里长城,今有万里防线。机甲,飞船,炮舰,医疗床,气象武器...陈逸获得了一间科技屋,从此走上了他改变世界的一生。新书《厨神求放过》已发布,大家可以去看看。
  • 采访外星人第一部

    采访外星人第一部

    话说为了搜寻地外文明,地球整了一台全世界最大的射电天眼之后,外星文明好高兴的,回应迅然:哎,既然你在找我嘛,那我就发个声音,咱俩互动一下。双方共同制作的是一款天外电台节目,两名主持人一位是远道而来的“宇宙大馄饨”,一位是来自地球的“地球小笼包”。听名字就知道啦,这二位的吃货级别不同凡响,已与天地水乳交融。节目以专栏的形式推出。内容主要包括:一系列绝密档案的解封,外星文明每天起床忙点啥?宇宙的来龙去脉,人类看不见的视角之外,想不到的逻辑之外,宇宙的那一部分精彩,包括不可思议的外星定制科技,很不一样的生命理念,物理概念,医学体系……为了接上地气,节目间隙将穿插更新版本的星座与预测方面的知识运用。喛,每次上直播,这两枚吃货主持都会重点商议今晚夜宵吃什么。你猜,外星人到地球后第一顿饭吃的是什么美食呢?啧啧,第一集就这么香喷喷地开始啦!
  • 未来武神

    未来武神

    联邦星河历2985年,地球的人类进入星际时代已经三千多年了,十五岁的主角古金铭在一所高中求学,原本是“古武天才”的他在和同学的比斗中,遭对方卑鄙手段的伤害,体内产生了电流,虽然体内存在电流使得他的经脉和丹田受损,不过,他反而因祸得福,体内的真气得到淬炼,变得更加精纯,而且他体内的真气和电流融合,使得他拥有特殊属性的真气。凭借自己的努力,古金铭在武道之路上越走越远,虽然路途中有种种坎坷,不过,这一切都没有阻碍他前行,让我们一起见证古金铭的成长之路……
  • 我不是你想象那种机械师

    我不是你想象那种机械师

    近现代文明,古武与机械并存的超凡文明时代。 机械生活从大学开始。 岁月推动。 当文明观察者,星际毁灭者,探险家……一系列身份加冠在头时,生活已经变得了充满传奇性色彩。非无限流。
热门推荐
  • 爆笑:菜鸟萌徒反潜大神攻略

    爆笑:菜鸟萌徒反潜大神攻略

    商业巨子摇身一变,成了游戏中称霸一方的霸主,目的:潜了他某个缺根筋的得意萌徒。职场菜鸟遭上司胁迫,含泪走进网游。同居后,她不小心发现某只狐狸的‘阳谋’,宁无双拍桌而起:好你个柏傲天,居然玩阴的!杀杀杀杀杀杀杀!本文爆笑,非喜勿入!且看职场菜鸟如何反潜海龟大神。【新书求包养《腹黑捉妖师:独宠废材萌神》】
  • 银月弯弯

    银月弯弯

    平凡,孤独,贫穷又如何?当你意思到这一切时,改变也随之到来!天又如何?天要亡我,我便逆天!
  • 特摄穿越系统

    特摄穿越系统

    一个喜欢看特摄片的少年王凯遇到了来自另一个时空的林凡,重要的是林凡的身上带着一个系统,可以穿梭特摄剧情。他们在假面骑士的世界化身为假面骑士W且看两位少年如何在特摄剧里面纵横!一切就在《特摄穿越系统》
  • 剑骨仙魂:若能爱必深爱

    剑骨仙魂:若能爱必深爱

    携一缕春风,装饰此生的半帘幽梦,将前世的眷恋盈入剑骨,谱就一曲惊艳时光的梵音。与他们邂逅怦然心动的瞬间。一筱耳语温婉绵长,零落的花瓣散发淡淡幽香,一颦一笑一心足;一悲一喜一生误;只因仙魂的一世情缘,半生流离,愿为相思睡,不忍相思累。情义之毒,穿肠蚀骨;若此生再过,必定执着不悔;金戈相争,仗剑于世,救世传说;多年后再回首,只等风雨湿过,桃雨纷纷。看满楼红袖招,物是人非事事休,苍茫大地利剑尽挽破,何处繁华笙歌落?世间只剩仙侠传说…(结合仙剑,古剑,及其它神话融为一体,外加新鲜内容的玄幻言情!)
  • 油头大人与滑头小毛贼

    油头大人与滑头小毛贼

    哎吆歪,听说“悠着点衙门”刚上任的油头大人是风流倜傥、风趣幽默,又才智过人的万人迷,只要是他经手的案子,无一迷案!无一冤案!而有个偷盗上千次,从未失手,从未被成功定罪的滑头小毛贼,很不服气!很想切磋切磋一二,于是展开了一场最搞笑风趣,正面切磋的定罪戏码……
  • 国公爷的漫漫追妻路

    国公爷的漫漫追妻路

    这是一个现代女穿越架空朝代被衰神附体的悲惨故事;李公爷:听说嫁人能够转运哦,你值得拥有!村妇岑:不嫁,不嫁,我的目标是驱除蛮子,守卫边疆!
  • 许你一朵曼殊沙华

    许你一朵曼殊沙华

    身为妖界的一员,怎么能放任天界茁壮成长呢?所以嘛,嘿嘿,就得使用一些特殊手段了……
  • 假如我回到了那个时候

    假如我回到了那个时候

    如果时光可以倒流,那么你会做什么呢?孑然一身的泠夏会怎么样?
  • 唯一仙王

    唯一仙王

    你是天才,可我比你更天才。你说我狂,那是因为我比你强。太玄大世界,仙道昌盛,无数的人求仙问道。法无仙,一个强者之后,经历低潮,凭借一卷杀人经逆天崛起,挥斥方遵,傲笑九天之上。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!