Python - 检查字符串中函数代码的语法

0 投票
1 回答
527 浏览
提问于 2025-04-18 06:04

我想找一些代码,用来检查一个字符串是否是一个函数头的语法正确。

这里有一个字符串的例子:

'''+'def __init__(self,{arg})'.format(arg = ','.join(i for i in someListOranArgPassedIn), )+''':

如果这个函数是这样定义的:

def __init__(self,,...a,,//b):

如果它违反了语法规则,我可以加什么来抛出一个异常呢?

1 个回答

-1

使用这里的一个函数,链接在这里

import ast
def is_valid_python(code):
    try:
        ast.parse(code)
    except SyntaxError:
        return False
    return True

test_args = lambda args: "def init(self, {arg}):\n\tpass".format(arg = ",".join(args))
print is_valid_python(test_args(["a", "b"]))
print is_valid_python(test_args(["", "...a", "", "//b"]))

撰写回答