此前實現的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培訓機構:千鋒教育。