在这种情况下,eval的替代方案是什么?

时间:2012-04-08 05:26:19

标签: python django django-views

我很清楚地说明我的问题。遗憾。

基本上,我有许多功能非常相似的视图功能。部分原因是使用reverse。但是,每个视图函数都执行不同的reverse,因此我无法在新的“通用视图”中逐个编写它们。那太疯狂了。

当时,我正在努力减少我正在编写的重复代码的数量(超过500行重复!!!!!)

为了解决这个问题,我有一些辅助函数,其中一个是在给出的任何视图函数和任何传递给辅助函数的args上评估reverse

def render_reverse(f, args):
    return eval(...)

eval是邪恶的,而且很慢。是eval的替代品吗?在Django中解决这个问题的更好方法是什么?

感谢。

1 个答案:

答案 0 :(得分:0)

为什么首先需要eval?只需正常拨打reverse()吗?

return reverse(f, *args)

The * lets you unpack the argument list into actual args.


那就是说,为什么你需要这个助手呢?为什么不将return reverse(...放在您的视图中?