我以通常的方式创建一个类:
class Star():
def __init__(self,
x=None, dx=None,
y=None, dy=None,
z=None, dz=None,
vx=None, dvx=None,
vy=None, dvy=None,
vz=None, dvz=None,
orbital_elements=None,
number_of_trails=10000,
prior="uniform",
a_max=None,
reject_zmax=False):
self.x, self.y, self.z, self.vx, self.vy, self.vz = x, y, z, vx, vy, vz
self.orbital_elements = orbital_elements
def get_zmax(self):
print("function 1")
def get_uniform_acceleration_prior(self, extended_mass_model=None, a_max=None, plot_z_hist=False, number_of_trails=self.number_of_trails):
print("function 2")
当我导入模块时会引发以下异常:
在[1]中:导入测试 NameError:名称“ self”未定义
当我从函数get_uniform_acceleration_prior()中删除kwarg时,可以导入该类而不会出现任何错误。
class Star():
def __init__(self,
x=None, dx=None,
y=None, dy=None,
z=None, dz=None,
vx=None, dvx=None,
vy=None, dvy=None,
vz=None, dvz=None,
orbital_elements=None,
number_of_trails=10000,
prior="uniform",
a_max=None,
reject_zmax=False):
self.x, self.y, self.z, self.vx, self.vy, self.vz = x, y, z, vx, vy, vz
self.orbital_elements = orbital_elements
def get_zmax(self):
print("function 1")
def get_uniform_acceleration_prior(self):#, extended_mass_model=None, a_max=None, plot_z_hist=False, number_of_trails=self.number_of_trails):
print("function 2")
In [2]: import test
In [3]:
那是为什么?