Python - 检查字符串中函数代码的语法
我想找一些代码,用来检查一个字符串是否是一个函数头的语法正确。
这里有一个字符串的例子:
'''+'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"]))