标签:使用 src ref 中间 并且 调用 个人 情况 size
工程实践选题是数据获取相关的,这里选择分析一个微信公众号爬虫的源代码。
一.源代码目录结构
目录结构比较清晰
1.bin存放关键代码
2.docs存放说明文件,比如界面说明,安装说明,使用说明,环境说明等
3.wechat这里是爬虫管理的代码,比如数量控制,链接控制
4.wechatspider存放爬虫代码,url获取与解析等
5.其他 一些配置文件和readme
二 .命名规则
1.文件名
可以看到是小驼峰命名法,getNewIp.py中首个单词首字母,第二个单词开始每个单词的的首字母大写
2.类名
使用了大驼峰命名法,每一个单词的首字母都大写。
3.函数名
使用了Snake Case命名法,单词中间用_分隔。这种命名法中的单词的首字母通常都是小写的,并且第一个词的第一个字母既可以是大写的又可以是小写的。
三.风格评价
首先这个代码的结构是比较清晰有层次的,代码按照功能下分,结构合理。
总体命名规则是很优秀的,三种命名法的使用条件符合通常的命名习惯。
注释数量恰到好处,而且非常合理:
文档开头表明了作者:
但是这份代码的缺点在于有些地方有的命名出现不规范,比如这个文件夹命名没有用任何方法分隔单词:
四.代码规范和风格的一般要求
个人来讲,python使用的比较多,这里介绍一下Python通常的代码规范。
事实上Python 官方给出了一种编码规范: PEP 8
这个是PEP8的中文版:https://blog.csdn.net/ratsniper/article/details/78954852
当然这个只是个标准而已,并没有强制要求大家都要去遵守,但好像大多数人都使用了 PEP 8 编码风格,使它已经成为了事实上的代码风格标准。这里主要介绍PEP8。
1.文件开头注释
使用pycharm可以导入预定义的模板。
打开一个新建的Python文件进行编辑(F4),这个文件中默认有两行代码:作者姓名和工程名称。之所以会出现这两行代码,是因为Python文件在创建时是基于文件模板进行创建的,因此会预定义这两个变量。在settings > file and code templates > python script 选中,然后写入模板语法。效果如下:
2.空格使用
3.命名方式
以下是常见的命名方式:
命名约定:
Names to Avoid 应避免的名字
永远不要使用字母‘l’(小写的L),‘O’(大写的O),或者‘I’(大写的I)作为单字符变量名。
在有些字体里,这些字符无法和数字0和1区分,如果想用‘l’,用‘L’代替。
Package and Module Names 包名和模块名
模块应该用简短全小写的名字,如果为了提升可读性,下划线也是可以用的。Python包名也应该使用简短全小写的名字,但不建议用下划线。
当使用C或者C++编写了一个依赖于提供高级(更面向对象)接口的Python模块的扩展模块,这个C/C++模块需要一个下划线前缀(例如:_socket)
Class Names 类名
类名一般使用首字母大写的约定。
在接口被文档化并且主要被用于调用的情况下,可以使用函数的命名风格代替。
注意,对于内置的变量命名有一个单独的约定:大部分内置变量是单个单词(或者两个单词连接在一起),首字母大写的命名法只用于异常名或者内部的常量。
Function Names 函数名
函数名应该小写,如果想提高可读性可以用下划线分隔。
大小写混合仅在为了兼容原来主要以大小写混合风格的情况下使用(比如 threading.py),保持向后兼容性。
4.PEP8检查
可以使用PEP8检查代码是否不符合规则
故意写几行不符合Python编码风格的代码:
import sys, os
from subprocess import Popen, PIPE
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
检查是否符合编码规范:
$ pep8 --first test.py
test.py:1:11: E401 multiple imports on one line
test.py:4:1: E302 expected 2 blank lines, found 1
test.py:6:5: E125 continuation line with same indent as next logical line
可以看到1、4、6行代码不符合规范
还可以输出不符合规范的代码和原因:
$ pep8 --show-source --show-pep8 test.py
标签:使用 src ref 中间 并且 调用 个人 情况 size
原文地址:https://www.cnblogs.com/dwtenir/p/11615399.html