1

eval() を使用する以外に Q() を動的に生成する方法はありますか?

eval() を使用した現在のメソッド:

q = eval("Q(" + q_arg + モード + "=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 に答える