我不太熟悉用python编写类,我正在尝试为我的应用程序修改一个编写的类。问题是我想给halo_pos
参数作为以下NFW
类的输入:
class NFW(object):
_req_params = { 'mass' : float , 'conc' : float , 'redshift' : float }
_opt_params = { 'halo_pos' :[float,float] , 'omega_m' : float , 'omega_lam' : float }
_single_params = []
_takes_rng = False
_takes_logger = False
def __init__(self, mass, conc, redshift, halo_pos,
omega_m=None, omega_lam=None, cosmo=None):
self.M = float(mass)
self.c = float(conc)
self.z = float(redshift)
self.halo_pos.x = float(halo_pos[0])
self.halo_pos.y = float(halo_pos[1])
self.cosmo = cosmo
如果我为以下参数传递halo_pos
的输入
然后,当我尝试用给定的输入调用NFW类时,我得到以下错误消息:
nfw = nfw_halo.NFWHalo(mass=M,conc=concentration,redshift=z_halo,halo_pos=[Xpos,Ypos],omega_m=omega_matter,omega_lam=omega_lambda)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "nfw_halo.py", line 156, in __init__
self.halo_pos.x = float(halo_pos[0])
AttributeError: 'NFWHalo' object has no attribute 'halo_pos'
我应该如何为我的类定义halo_pos以避免引发错误消息?在
您没有声明在init部分中分配的halo_pos变量。在
所以你的声明自我光环.x和自我光环.y一旦init完成就被清理。在
相关问题 更多 >
编程相关推荐