python中一个类中的代码行?

时间:2012-10-21 08:45:03

标签: python lines-of-code

我正在尝试查找存储在python文件中的类或函数内的代码行数 我的代码是这样的...我想要的是找到一个类中的代码行而不是所有文件...有没有什么好方法可以做到?

import inspect
import foo    
for a,b in inspect.getmembers(foo):
    if inspect.isclass(b):
        print a  # find a class within the file

2 个答案:

答案 0 :(得分:3)

len(inspect.getsourcelines(a)[0])

来自inspect.getsourcelines docs:

  

返回对象的源行和起始行号列表。

这就是你需要0索引的原因

答案 1 :(得分:3)

您仍然可以使用inspect

In [6]: from test import A

In [7]: import inspect

In [8]: inspect.getsourcelines(A)
Out[8]: 
(['class A(object):\n',
  '    pass\n',
  '    pass\n',
  '    pass\n',
  '    pass\n',
  '    pass\n',
  '    pass\n',
  '    pass\n',
  '    pass\n'],
 1)

len(inspect.getsourcelines(A)[0])会返回您想要的内容。