但是,我们的重点,紧张在其代码上,因此不放出其游戏截图了,而是专注代码。
下面是我随便点开的一个文件内容。
大家可以欣赏一下什么是赏心悦目的代码。

2. 我们惊叹它的什么?

通过上图,我们能够看到什么?我们惊叹的是它的什么?先看看小伙伴们的评价(只摘取了部分评价):

惊艳于红警开源代码心旷神怡的代码注释我们也可以

在我看来,我们惊艳的部分至少包含三点:

清晰的代码注释语义化的编码规范小而精的逻辑实现2.1 清晰的代码注释

我们可以看到非常工致的文档头注释(图1),还有详细的方法注释(图2),以及代码的字里行间里的逻辑注释(图3)。
这些注释不仅仅是大略的重复代码,更把代码背后的业务逻辑详细的呈现了出来,使得我们不用预测这个的用场,只读代码就可以知道它该当在哪里利用。
最为夸年夜的是第三张,在详细实现中,注释竟然比代码所占篇幅还要大。

2.2 语义化的编码规范

我们可以看到它明显的语义化编码,也便是在逻辑实现部分,尽可能的能够少考虑详细的实现,如if判断条件中,利用一个函数来实现详细的判断,而不是直接把判断细节暴露出来。
这有助于我们思维的连续性,从而从更高的层面对于代码有一个整体的把握。

2.3 小而精的逻辑实现

一样平常的,尽可能的要让一个函数的实现少,大概一个屏幕可以放得下即可,真正做到一个函数只做1件事,这样既可以避免逻辑混乱,而且也易于掩护。
对付个中的繁芜的逻辑的细节实现,完备可以放到另一个函数中,从而避免一个函数包含了多少个层次的逻辑。

3. 依葫芦画瓢

那么在我们感叹之余,我们能不能做些什么向大佬看齐?在我的Blink发出往后,收到了上百个点赞评论,同等认为都想像20多年前的前辈一样优雅的编程。
那么,我们就从最大略的、最明显改不雅观的代码注释开始。

在Python中,代码注释实在就两种,单行代码注释(#)和多行代码注释("""""")。
但是我们须要用到的地方则有4个部分:文档级、类级、方法级和行级别。
下面我们分别讲解一下这些部分的组成。

3.1 添加文档级注释

我们可以看到红警文件开头的那个非常能干的注释,它展示了全体文件的简要信息,如属于什么项目,谁在什么时候创建的,什么时候更新的,而且以一种非常规范的格式呈现在我们面前。
我们能不能拥有这样酷炫的文档开头呢?答案是Yes!首先看一下我复现的效果:

只管看起来可能没有红警原版霸气,但是只要学会了这个技能,我们都可以创建属于自己的风格的文件头。
我们只须要利用pycharm中的文件模板设置即可。
它统共分为3个步骤:首先,点击File->Settings进入设置界面,选择Editor下的File and Code Templates选项。

然后,点击Python Script(你也可以为其他类型文件设置文件头),就可以看到最右侧显式的文件模板了。
末了,只须要将我们喜好的文件头复制粘贴进去即可,点击OK即可。

下面是我仿照红警风格自己设计的文件头,大家可以随意取用(CV一下):

当然,更多其他的这种内置变量或者自定义变量的利用方法可以拜会《详解pycharm新建文件时头部的模板_oukohou-CSDN博客》。

3.2 添加类级注释

当添加完文件注释往后,我们就须要添加更加细致的注释,首先来看对付类的注释。
下面的例子给出了类注释的两个部分,一个部分是直接处于类下的简要先容,另一个则是在__init__下的注释。
两个部分都是利用"""进行标记的。
图上风格为pycharm自带的编码风格,也有google和Numpy风格的注释,详情可以看《Python类和方法注释规范_XerCis的博客-CSDN博客_python 方法注释》。

3.3 添加方法级注释

更加细致的注释是在方法级的注释,如下面代码所示,它注释在方法上,一个好处是可以直接辅导这个函数的功能,另一个好处便是当你在查看方法时,不须要点击方法里面查看源代码,也知道它的用场、参数和返回值,这个操作我们下面会先容。

3.4 添加行级注释

最细致的是行级注释,只注释在每一个行上,例如刚才涌现过的例子。
它可以用来阐明一些不是很随意马虎知道操作的目的的代码。

file="<File>"+file+"</File>" # Special operation to avoid there is no root.3.5 其他小技巧

经由以上4级的注释,我们让代码更加的丰满了,从而能够达到红警里注释的效果。
但是我们这东西可不是绣花枕头,中看不中用,它是可以实实在在帮助我们提高编程效率的。
下面我们先容一些小技巧来帮助我们更好的利用我们/其他人的注释。

3.5.1 查看方法注释

当我们费了千辛万苦注释完毕后,该怎么查看呢?一个方法便是将鼠标放置在我们想要查看的方法上,按住ctrl,就可以查看到其注释了。

另一个方法则是ctrl+Q,它用来查看解释文档呈现的注释,两者的不同大家可以通过下面的图和上面的图比拟可得。

3.5.2 天生解释文档

就像刚才讲的,这些都是在代码里查看的,如果我们想天生一个工业级的软件解释文档该如何呢?这么多注释不能白写了呀。
这时候我们就可以利用Sphinx来帮助我们实现自动化的解释文档天生,详情可以看《Sphinx入门——快速天生Python文档》。

3.5.3 打包项目所需依赖包

当我们代码也准备好了,解释文档也准备好了,间隔交付别人就只差一个依赖包了。
我们的项目可能会依赖很多第三方的包,如果不给别人一个依赖清单,那么别人也没有办法非常随意马虎地复现你的程序,由于总会报各种各样的缺点。
这时候,我们又须要另一个神器了pipreqs。
首先利用命令行实行pip install pipreqs。
然后进入项目的文件夹里,实行下面的命令:

pipreqs ./ # 报错就实行下面这条pipreqs ./ --encoding=utf-8

这样就会天生一个requirement.txt文件,里面便是我们的依赖包了,等到再复现的时候,只须要实行pip install -r requirement.txt即可重装这些依赖了。

4 小结

至此,我们基本上讲述了如何实现教科书级的红警开源代码须要把稳的事变,为往后我们更好地编码打下了根本。
在将来,我们将会磨砺自己的编程技巧,终有一天做出一流的艺术品,为全体虚拟天下真真正正地贡献自己的一份力量!

本人技能博客同步更新,欢迎关注:刘炫320的博客_CSDN博客-算法编程习题解答(java版),机器学习习题集,leetcode领域博主