我打算从另一个模块(如果有区别的话)在 Class 粒子下导入一个函数,这是您看到的第一个函数,另一个来自当前模块。
我在 Class 粒子中用 self 初始化了质量和速度。
energy = particle.KE(self, mass, velocity) + pot_energy_dw(D, r, re, alpha)
但是,我收到了这个错误。我已经检查过我是否使用了正确的参数 KE(self, mass, velocity)
。
File "C:\Users\user\anaconda3\velocityVerlet3D.py", line 128, in main
energy = particle.KE(self, mass, velocity) + pot_energy_dw(D, r, re, alpha)
NameError: name 'self' is not defined
任何帮助将不胜感激。
答案 0 :(得分:0)
我觉得应该是这样的
particle().KE(mass, velocity)
或
p = particle() # an instance of the class `particle`
p.KE(mass, velocity) # call instance methods
self
表示类实例。如果 particle.KE
是静态/类方法,则调用 KE
。
要调用实例方法,需要初始化一个类的实例,例如particle()
。然后就可以通过实例调用它们了。