自动检测Python代码的缩进块

时间:2017-11-14 04:09:24

标签: python counting lines-of-code

这在Java中相当容易,因为开始和结束该代码块需要花括号,因此我可以编写一个程序来查找花括号并标记每个函数。

我在Python中遇到的问题是找到某种标记,告诉我函数何时结束。我猜测一个解决方案就是找出一些方案来检测' \ t'对于每一行。有哪些方法可以确定功能块的开头并且它结束了?

1 个答案:

答案 0 :(得分:0)

坯料通常优于薄片,并且混合绝对是不可接受的。无论如何,函数也可以在其他函数内部和类中定义,因此你的q可能会更加微妙。

(顺便说一句,在REPL中,一个空白行将结束def,一般情况并非如此。)

您可以利用检查模块

In [1]: import inspect

In [2]: def h():
    ...:     a =9
    ...:     b =8
    ...:     return a+b
    ...: 

In [3]: inspect.getsourcelines(h)
Out[3]: ([u'def h():\n', u'    a =9 \n', u'    b =8\n', u'    return a+b\n'], 1)

In [4]: inspect.getsourcelines(h)[0]
Out[4]: [u'def h():\n', u'    a =9\n', u'    b =8\n', u'    return a+b\n']

In [4]: len(inspect.getsourcelines(h)[0])
Out[4]: 4