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

时间:2014-05-10 03:09:10

标签: python string syntax-error

我正在寻找代码来检查表示函数函数头的字符串是否在语法上是正确的。

这是我的字符串示例:

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

如果此功能定义为

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

并违反语法规则,我可以添加什么来引发异常?

1 个答案:

答案 0 :(得分:-1)

使用here中的功能。

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"]))