input関数
input関数は
eval(raw_input(prompt))
と定義されているらしい。
Pythonコード入力されたら超危険・・・。苦笑
Pythonの入門サイトで良くinput使ってるところを見かけるが。。。
[追記]
IronPythonで書いてみた。
>>> data = [ 1, 2, 3, 4 ] >>> def hoge() : ... a = input( "user name : " ) ... print a ... >>> hoge() user name : map( lambda x: x*x, data ) [1, 4, 9, 16]
"map( lambda x: x*x, data )"の部分がユーザの入力。
僕が初耳だっただけで,evalされるってことはPythonユーザの中では常識なのかな?
(良く見るinputのサンプルでは注意書きとか何も無いけど・・・)