【问题标题】:count lines of code for each class in a python file?计算python文件中每个类的代码行数?
【发布时间】:2012-10-21 23:47:05
【问题描述】:

我正在尝试在 python 文件中查找类中的代码行数。我使用 len(inspect.getsourcelines(b)[0]) 返回每个类的代码行数在文件中,但除了代码行之外,它还计算 cmets 和 doc 字符串的问题.. 有没有办法丢弃 cmets 和 doc 字符串?

import inspect
import foo

for a,b in inspect.getmembers(foo): 
    if inspect.isclass(b):
        print(a)
        print(len(inspect.getsourcelines(b)[0]))

【问题讨论】:

  • 您可以通过__doc__ 访问每个类和函数的文档字符串并自己计算文档字符串行数,但我不知道使用 cmets 的方法。
  • 最好在代码行数中包含 cmets。

标签: python inspect lines-of-code


【解决方案1】:

您可能只需要自己从getsourcelines 的结果中解析出cmets。如果您忽略多行 cmets,这仅意味着检查第一个非空白字符是否为 #。对于使用三引号的多行 cmets,您可以执行类似的操作,同时跟踪您是否在注释块中。

【讨论】:

  • 我试图这样做,但我找不到任何可行的方法......你知道如何做到这一点吗??
  • 忽略多行 cmets,len([line for line in inspect.getsourcelines(foo)[0] if not line.strip().startswith('#')]) 其中 foo 是您正在检查的对象。
  • 如果这是您尝试过的东西,最好发布您尝试过但不起作用的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多