1

除了使用 eval() 之外,有没有办法动态生成 Q()。

eval() 的当前方法:

q = eval("Q(" + q_arg + mode + "=args[arg])")

其中模式是“_ in”或“ _nin”。

这行得通,只是想在没有 eval() 的情况下做到这一点

4

1 回答 1

3

Q对象,就像任何 python 类都可以接受kwargs- 它可以是一个字典,所以你可以构建字典并将其传递给例如:

kwargs = {}

# Build the key and add it to the kwargs dict
key = "%s%s" % (q_arg, mode)
kwargs[key] = args[arg]

# Pass kwargs to Q
q = Q(**kwargs)
于 2012-09-21T18:27:56.550 回答