2

Python コードを動的に生成し、eval() 関数で実行する必要があります。

私がやりたいことは、いくつかの「インポート」と「値の割り当て」を生成することです。つまり、評価するにはこの文字列を生成する必要がありますeval(x)

x = """
import testContextSummary
import util.testGroupUtils
testDb = [testContextSummary.TestContextSummary, 
          testGroupUtils.testGroupUtils.TestGroupUtils]
""" # x is automatically generated
eval(x)
... use testDb ...

このコードで試してみましたが、 eval() が を認識importしないというエラーを返すので、このコードを試しました。

x = """
testContextSummary = __import__("testContextSummary")
testGroupUtils = __import__("util.testGroupUtils")
testDb = [testContextSummary.TestContextSummary, 
          testGroupUtils.testGroupUtils.TestGroupUtils]
""" # x is automatically generated

eval(x) # error

割り当てステートメントを許可しないというエラーが再び発生しました。

動的に生成された Python スクリプトを実行し、評価の結果を使用する方法はありますか?

4

2 に答える 2

0

これもうまくいくかもしれません:

x = """[
        __import__("testContextSummary").TestContextSummary, 
        __import__("util.testGroupUtils").testGroupUtils.TestGroupUtils]
"""
testDB=eval(x)
于 2013-06-06T00:45:05.047 に答える