我在为我的项目用 python 编写代码时想到了这种情况,并开始思考这个问题。
问题是给定一个包含函数名称及其参数的字符串,我们如何获取参数以及给定函数中参数数量的函数名称。
我的第一个想法是:
s = 'func(a,b)'
index = s.find('(')
if(index != -1):
arg_list = s[index+1:-1].split(',')
func_name = s[:index]
但当我开始思考更多时,我意识到如果在具有自己参数的函数中指定函数会怎样?
func1(func2(a,b,c),func3(d,e))
通过我的上述方法,我最终会得到正确的函数名称,但 arg_list 将包含
["func2(a","b","c)","func3(","d","e)"]
一般如何解决这种情况?
最佳答案
如果您的语言看起来非常像 Python,请使用 ast.parse()
:
import ast
def parse(s):
tree = ast.parse(s)
print ast.dump(tree)
parse('f(a,b)')
您需要的所有信息都将编码在树
中。
关于python - 获取函数名称和参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24945132/