此前实现的C代码统计工具仅能分析和统计C语言代码文件,但其设计思想也适用于Python代码及其他编码语言。
Python行数统计的难点在于注释行,因为Python有两种注释方式:简单明了的单行注释和复杂含糊的多行注释(块注释)。单行注释以#(pound或hash)符号起始,直至物理行的末尾(但字符串内的#并无注释作用)。多行注释可在每行头部添加#号,也可包入未命名的三引号字符串(triple-quotedstrings,即多行字符串)内。除非未命名三引号字符串作为对象的文档字符串(docstring),即模块、类、或函数体的第一条语句为未命名字符串,否则可作为多行注释。
下面以总27_代7_注15_空5.py脚本为例,演示不同的注释方式。注意,该脚本仅作测试数据用,并非真实世界中的脚本文件。
#!/usr/bin/python
#-*-coding:utf-8-*-
#comment3
print'code1'
'''comment4
print"""comment5"""
comment6'''
"""comment7
'''print'comment8andcomment9'
"""
print'code2'
defcode3():
"""f=open('whatever','r')
multilinecomment10,11,12makeupadocstring
"""
print'code4'
'''
print'comment13,comment14andcomment15'
'''
return'code5'
help(code3);print'code6'
printcode3.__doc__,'code7'
运行该脚本后,输出如下:
code1
code2
Helponfunctioncode3inmodule__main__:
code3()
f=open('whatever','r')
multilinecomment10,11,12makeupadocstring
code6
f=open('whatever','r')
multilinecomment10,11,12makeupadocstring
code7
使用未命名三引号字符串做注释时,存在如下缺点:
未命名字符串本质上并非注释,而是不生成字节码的语句。因此,需要满足缩进要求(常错点)。
无法注释掉已包含相同三引号字符串的代码。
IDE的语法高亮会将三引号字符串标记为字符串,而不是注释区。
此外,大多数IDE均支持选择代码片段,并自动使用单行注释符对选区添加注释。以IDLE(PythonGUI)为例,快捷键Alt+3可添加注释,Alt+4可删除注释。因此,建议总是使用#号添加多行注释,而三引号字符串仅用于调试过程中临时性地注释代码块。
以上内容为大家介绍了Python代码统计工具,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。