我該如何解決如何解決AttributeError:'dict'對象沒有屬性'nemitx'錯誤和Keyerror?
AttributeError: 'dict' object has no attribute 'nemitx' error and Keyerror?
class TwissGaussBeam(GaussBeam):
'''__init__(self, twiss, N=1000, pos=np.array([0, 0, 0, 0, 0, 1]),
Q=1e-9, chargesign=-1, restmass=ele_mass)
Create a multi-particle beam with a Gaussian spread in each of the
6 dimensions. The statistics of the beam distribution are calculated
from the Twiss parameters in twiss.'''
def __init__(self, twiss, N=100000, pos=np.array([0, 0, 0, 0, 0, 1]),
Q=1e-12, chargesign=-1, restmass=ele_mass):
P = pos[5]
gammasquared = ((P*1e6)**2 + restmass**2)/restmass**2
betagamma = np.sqrt(gammasquared - 1)
sig = np.zeros(6)
sig[0] = np.sqrt((twiss.nemitx/betagamma) * twiss.betax)
sig[1] = np.sqrt((twiss.nemitx/betagamma)/twiss.betax)
sig[2] = np.sqrt((twiss.nemity/betagamma) * twiss.betay)
sig[3] = np.sqrt((twiss.nemity/betagamma)/twiss.betay)
sig[4] = twiss.sigz
sig[5] = twiss.sigP
錯誤信息是由於Python不認爲特維斯對象具有nemitx成員。解決方案是解決這個問題。我真的把時間花在了谷歌的「twiss」和「twiss multi particle beam」上面,因爲你沒有告訴我們任何關於這個被傳入的小東西的東西,它幾乎不可能幫助你。請閱讀[問],並給我們足夠的信息,如[mcve],以便我們可以幫助您。 –
對不起,我沒有提供足夠的信息。下次我會考慮你的觀點並感謝你的時間 – Lauren
歡迎您在問題中加入必要的信息,所以問題和答案預計會反覆改進,沒有人會寫出完美的第一個問題,如果您確實發現Michael的答案是有用的,請立即投票或接受它。 –