(Python 2.x で) getを使用して、適切なオブジェクト (ファイル オブジェクトなど)input
のメソッドを含む任意の式を評価できます。write
$ python tmp.py
Guess the value of the randomly generated number. open("/dev/tty", "w").write(str(hidden))
0.111568033994Traceback (most recent call last):
File "tmp.py", line 6, in <module>
if float(val) == hidden:
TypeError: float() argument must be a string or a number
入力文字列open("/dev/tty", "w").write(str(hidden))
は をトリガーしTypeError
ますが、文字列が評価される前ではなく、 の値がhidden
現在の端末に書き込まれます。この例は、OS に依存しており、/dev/tty
存在することを前提としていますが、値がすぐに表示されるようにするためだけに使用しました。ユーザーが書き込み権限を持つ任意のファイルを使用でき、Python スクリプトが存在した後にファイルの内容を表示できます。
コードに が含まれていた場合は、代わりimport sys
に入力を使用できます。sys.stdout.write(hidden)
コードに が含まれていた場合は、代わりfrom __future__ import print_function
に入力を使用できます。print(hidden)