这在Java中相当容易,因为开始和结束该代码块需要花括号,因此我可以编写一个程序来查找花括号并标记每个函数。
我在Python中遇到的问题是找到某种标记,告诉我函数何时结束。我猜测一个解决方案就是找出一些方案来检测' \ t'对于每一行。有哪些方法可以确定功能块的开头并且它结束了?
答案 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