python改變導入模塊中的變量的問題


Python中循環函數1調用函數2,函數2中import了一個模塊,函數1:

def run():
    for a in b:
        runTest(a,patter)

函數2:

def runTest(case_dir, patter):
    import TestRunner
    discover = unittest.defaultTestLoader.discover(case_dir, pattern=patter)

TestRunner中會有一些變量,變量值會動態變化。但是在函數1循環到第二次及以后時,函數2中import模塊的變量值不會改變,導致一些動態配置無效。

誤區:runTest方法結束時將TestRunner中的變量置為None是無效的,只會在下一次找不到那個變量。

解決方法:

導入模塊后使用reload方法重新導入。有人想問這不是多次一舉么?

非也非也,下次循環導入時發現模塊已存在,就不會再導入,變量也不會有任何變化,重新導入會重新初始化,這樣子就把問題解決了。

def runTest(case_dir, patter):
    import TestRunner
    reload(TestRunner)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM