我有一个带有Tkinter GUI的基本工具,它可以循环进行线路测试,然后允许通过单独的测试模块对新服务进行测试。我在重新测试时遇到了一个问题,它只能提供与先前相同的数据,因此添加了importlib.reload(test)即可解决该问题,但是现在代码运行了两次。
我尝试添加这样的计数器
if n = 0:
import(test)
n=n+1
else:
reload(test)
但是在第二个循环中我得到了错误
UnboundLocalError:分配前已引用局部变量“ test”
和
n = 1
import test as n
n=n+1
但是n不再是变量。
我需要测试运行一次,然后使用新数据重新加载第二个测试
答案 0 :(得分:0)
第一个文件是 mytestmain.py 。它在单独的模块 mytest.py 中调用 test 函数。
# Load file mytest.py from the working directory.
# The calling file is "mytestmain.py", also in the working directory.
import mytest
print(mytest)
# output example: <module 'mytest' from 'c:\\python\\so\\mytest.py'>
data1 = 2
answer1 = 4
data2 = 3
answer2 = 10
# Call function "test" inside "mytest.py" module.
# Function "test" calculates a square of a number.
# Test1 with data1=2. Test answer1 is 4.
# This is the correct answer, test should pass.
result = mytest.test(data1, answer1)
print("Result1: ", result)
# Test2 with data2=3. Test answer2 is 10.
# This is the wrong answer, test should fail.
result = mytest.test(data2, answer2)
print("Result2: ", result)
第二个文件是 mytest.py ,该文件具有 test 功能。该文件仅加载一次。
# testing module, named mytest.py
def test(data, answer):
if data:
# If data exists, compare with answer.
if answer == data * data:
return "Pass"
else:
return "Fail"
# Call test function.
# result = test(2, 4)
# print(result)
# result = test(3, 10)
# print(result)
仅当您更改 mytest.py 文件中的参数时才需要重新加载。对于测试,通常的工作流程是将新参数传递到测试文件中,而不是尝试从测试文件内部更改这些参数。我看到重新加载在Jupyter笔记本电脑中经常使用,人们在一个大型项目中尝试将各种参数分成多个笔记本电脑。单独的笔记本电脑没有其他功能。它们被拆分以使每个文件更短,但是所有文件都是一个单元。