def unfold_list(_list):
if any(isinstance(x, ast.Call) for x in _list):
new_list = list()
for e in _list:
if isinstance(e, ast.Call):
name = e.func.id
if name == 'r':
try:
lower = e.args[0].n
upper = e.args[1].n
r_list = r(lower, upper)
for elem in r_list:
new_list.append(ast.Num(elem))
except Exception:
raise AttributeError(
"function 'r' needs 2 integer arguments")
else:
return _list
else:
new_list.append(e)
return new_list
else:
return _list
评论列表
文章目录