我有一个问题,解决方案似乎是创建一个类。但是,这个类中的所有方法都是静态的,我只会实例化一次类,所以我想知道使用类是否是正确的方法。
更具体地说,我希望有一个单独的模块来存储本质上是程序骨架的一些函数和一些变量。这些函数和变量取决于定义我的模型的一些参数(并且我不想将这些参数作为参数传递,因为我可能会在以后指定相关的其他原因)。前任。:
# my_model.py
def V(x):
return -m*x**2 + k*x**4
在另一个模块上,我对这些参数“m”和“k”的一些值进行了扫描,对于这些值中的每一个,我想找到 V 的最小值:
# scan.py
from scipy.optimize import minimize
import random, my_model
for i in range(5):
m = random.randint(0,10)
k = random.randint(0,10)
minimize(my_model.V, 0)
当然,这是行不通的,因为 my_model.V 不知道 m 和 k 是什么。正如我所说,我考虑在 my_model 文件中创建一个类,在该类中定义函数 V(和其他!),并在 scan.py 中实例化该类,传递参数“m”,“k”作为参数。但是,正如我所说,这在我看来是对类特性的过度使用。例如,显然上面的函数 V 将是静态的,因此在此类中的所有其他定义中都会发生。那么有没有其他更合适的方法来实现我想要的,或者我只是“反应过度”和/或完全误解了 Python 中类的使用?