バッククォート構文
Wikipediaに載ってた自己複製プログラムのPythonでの例
a='a=%s;print a%%`a`';print a%`a`
`a` という表記は初めて見たので調べてみると、渡されたオブジェクトを文字列として評価した文字列オブジェクトが返ってくるらしい。`a`と同義な表現としてrepr(a)、似たような関数としてstr(a)があるのはマニュアルを参照。
>>> a = 3 >>> a 3 >>> `a` '3' >>> x = lambda c: c**3; >>> `x` 'at 0x02144270>'
恐ろしいことに、このバッククオートはネストできる。つまり
>>> ``a`` "'3'" >>> ```a``` '"\'3\'"' >>> `````a````` '\'\\\'"\\\\\\\'3\\\\\\\'"\\\'\'' >>> ``a`+```a```` '\'3"\\\'3\\\'"\''
これもうわかんねぇな
Python3 では `a` の構文は廃止されたのもむべなるかな。