0
我想在使用lambda的Python類中定義一個函數,我想引用它從中被調用的類的實例,並且不知道如何。在Python類中提到自我的Lambda
properties.append(pf.moleculeProperties())
properties[-1].name = "Monatomic Hydrogen"
properties[-1].formula = "H"
properties[-1].mass = (1.00795e-3)/(6.022e23)
properties[-1].elecLevels = [[pf.waveNumToJoules(82309.58), 1]]
properties[-1].q = lambda T,V : pf.q_trans(properties[-1],T,V) * pf.q_elec(properties[-1],T,V)
properties.append(pf.moleculeProperties())
properties[-1].name = "Monatomic Oxygen"
properties[-1].formula = "O"
properties[-1].mass = (16.0e-3)/(6.022e23)
properties[-1].elecLevels = [[pf.waveNumToJoules(158.265), 1], [pf.waveNumToJoules(226.977), 1], [pf.waveNumToJoules(15867.862), 1],
[pf.waveNumToJoules(33792.583), 1], [pf.waveNumToJoules(73768.200), 1], [pf.waveNumToJoules(76794.978), 1], [pf.waveNumToJoules(86625.757), 1]]
properties[-1].q = lambda T,V : pf.q_trans(properties[-1],T,V) * pf.q_elec(properties[-1],T,V)
當我嘗試調用上比列表的最後一個成員以外的東西Q,它似乎評估性能[-1]的語句,每次給我的名單的最後一個成員。在這個例子中,我試圖調用與氫對應的元素的q函數並獲得氧的q函數。
[Python中的(lambda)函數閉包捕獲是什麼?](http://stackoverflow.com/questions/2295290/what-do-lambda-function-closures-capture-in-python) – Kevin
I如果你在* pf.moleculeProperties裏指定lambda *,你就可以得到你想要的範圍。 –