我的算法中有一个.py文件。在这个文件的 init (self)中,我有一些变量需要在所有scenerios和我想要更改的2个变量中进行测试。我还创建了另一个.py文件,负责运行我的第一个文件x次,但每次都使用相同的变量。我的问题是我应该如何为我的第一个文件正确创建一个测试环境,用不同的变量运行它10次?
我想在10个不同场景中测试的.py文件示例。
class A:
def __init__(self):
self.xsize = 50
self.ysize = 50
self.max_tx_power = 200 # Variable to change
self.min_tx_pow = 10 # Variable to change
def alforithm(self):
power_steps = range(self.min_tx_pow, self.max_tx_power + 1)[0::10]
def generator(self):
self.algorithm()
if __name__ == "__main__":
a = A()
a.generator()
答案 0 :(得分:0)
您需要对A类的构造函数进行一些更改。您的新构造函数看起来像这样:
def __init__(self, max_tx_power = 200, min_tx_power = 10):
self.xsize = 50
self.ysize = 50
self.max_tx_power = min_tx_power # Variable to change
self.min_tx_pow = max_tx_power # Variable to change
如果你需要在一个新文件中运行它来测试,你将加载这个类,因为你将从python中的任何模块加载一个类。只需确保两个文件都在同一目录中。假设你的第一个文件是util.py,那么第二个文件看起来像这样:
from util import A
#Alternatively you can also use import util and call A as util.A(x,y)
for i in range(10):
a = A(300,30)
a.generator()
答案 1 :(得分:0)
由于您希望在每次调用generator
函数时更改变量,因此您希望传递变量。也许你的测试文件有这个:
来自PostClassA import *
for tests in range(10):
b = A()
power_steps = b.generator(200 - tests^2 , 10 + tests^3)
print(f'Algorithm generated: {power_steps}')
然后在你的类变量周围移动(并修复代码中的语法错误)我最终在这里:
class A:
def __init__(self):
self.xsize = 50
self.ysize = 50
def algorithm(self,max_tx_power, min_tx_power):
power_steps = range(min_tx_power, max_tx_power + 1)[0::10]
return power_steps
def generator(self, max_tx_power, min_tx_power):
return self.algorithm(max_tx_power, min_tx_power)
if __name__ == "__main__":
a = A()
print(f'Class A default test generated: {a.generator(200, 10)}')
我不知道你的功能是什么意思,所以就像它一样。也不知道'默认'行动应该是。
*仍然有Python腿,我确信有更多正确的方法......我的目标是明确