从另一个模块中的类导入函数

时间:2021-01-26 12:31:02

标签: python module

我打算从另一个模块(如果有区别的话)在 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

任何帮助将不胜感激。

1 个答案:

答案 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()。然后就可以通过实例调用它们了。