python - 获取函数名称和参数

标签 python algorithm

我在为我的项目用 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/

相关文章:

python - 用作上下文管理器的 sqlite3 连接的事务不是原子的

python - 从一个非常大的二进制文件中有效地读取几行

python - Tkinter 标签文本未更新,标签可见并且文本值是最新的

python - Pandas:将数据框从列转为行

python - 在 Keras 中反向运行模型

c++ - 如何比较c++列表中的两个连续元素

algorithm - 约束和算法

python - 为什么我的 Monty Hall 解决方案不起作用?

algorithm - 决策树与朴素贝叶斯与 KNN

django - 在 memcached 过期场景中避免 dog-piling 或 thundering herd