我注意到,Python的EVAL()函數縮短一些列表,使用 「...」:如何在評估列表時防止Python的eval()使用「...」?
In [10]: eval ('array([1./5.0e-12] + [0.]*1023)')
Out[10]:
array([ 2.00000000e+11, 0.00000000e+00, 0.00000000e+00, ...,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00])
我怎麼能阻止它這樣做?
(後續的代碼barfing的 「...」。):
File "<string>", line 1
initializer.channel_response = array([ 2.00000000e+11, 0.00000000e+00, 0.00000000e+00, ...,
^
SyntaxError: invalid syntax
這裏是我的人創建的配置文件,一個典型的 「線」:
('Pretap = 0', \
({'root_name' : 'example_tx', \
'tx_tap_np1' : 0, \
'tx_tap_nm1' : 0, \
'tx_tap_nm2' : 0, \
}, \
{'channel_response' : array([1./5.0e-12] + [0.]*1023), \
'sample_interval' : 5.0e-12, \
} \
) \
)
這與'eval'無關。如果您在沒有'eval'的情況下評估相同的表達式,您會得到相同的結果。只有在將numpy數組顯示爲字符串時,纔會出現'...'。 – interjay
看起來你正在一個字符串上運行'eval',然後複製結果並粘貼到不同的代碼行中。爲什麼這樣做?爲什麼不只是'initializer.channel_response = array([1。/ 5.0e-12] + [0。] * 1023)'? – Kevin
因爲我正在從文件中讀取幾個不同的配置。 – dbanas