如何统计Python文件中各函数/类行数及相关代码度量指标?
解决方案
Python 场景
- 代码行数与函数统计:用
radon库,它专门针对Python代码做静态分析。
先安装:pip install radon
执行radon raw your_script.py,会输出每个函数、类的代码行数(可加--exclude-comments过滤注释行),同时能直接看到文件内的函数总数。 - 圈复杂度计算:还是用
radon,运行radon cc your_script.py,每个函数的圈复杂度会被列出,还会标注复杂度等级(A到F)。批量扫目录就加-r参数:radon cc ./src -r。
Java 场景
- Checkstyle:配置规则后一站式获取所有指标。
下载Checkstyle的jar包,编写配置文件启用CyclomaticComplexity(圈复杂度)、LineCount(行数)、FunctionCount(函数数量)规则,执行命令:java -jar checkstyle-*.jar -c your_config.xml YourClass.java,输出结果里包含你要的所有数据。 - SonarQube:适合大型项目,本地部署社区版后,把代码提交扫描,仪表盘里能直观看到每个文件的函数数、各函数/类行数、圈复杂度等,还能生成统计报表。
自定义脚本(通用语言适配)
如果需要针对小众语言或者定制化统计逻辑,自己写脚本更灵活:
- 用正则匹配目标语言的函数/类定义(比如Python的
def、Java的public void),定位代码块范围后统计有效行数(跳过空行、注释)。 - 圈复杂度基础计算:初始值1,每遇到一个控制流分支(
if、for、while、switch case、try/catch、&&/||这类短路判断)就加1,遍历函数代码块计数即可。
内容的提问来源于stack exchange,提问作者Fernanda Almeida
相关产品推荐
相关产品推荐

