それはまったく影響しません。コンパイルされたコードがどこから来たのかを識別するために使用される単なる名前であるため、必要な文字列を使用できます。
ドキュメントが言うように:
コンパイル(ソース、ファイル名、モード[、フラグ[、dont_inherit]])
filename 引数は、コードが読み取られたファイルを指定する必要があります。ファイルから読み取られなかった場合は、認識可能な値を渡します ('< string>' が一般的に使用されます)。
source
がファイルから読み取られていない場合 (ここのように) <string>
、このコードが書き込まれた文字列からコンパイルされていることがわかるように、 を使用することをお勧めします。
コードをコミットした人は、Bottle Python 2/3 のバグを修正するときにそれを行いました。したがって、ユーザーが 2.x を実行しているときに<py3fix>
、彼がコンパイルしたものからアサーションが発生したことを識別する方法として、彼が使用したと推測しています。def _raise
>>> eval(compile('def _raise(*a): raise a[0], a[1], a[2]', '<py3fix>', 'exec'))
>>> _raise(Exception, "error message", None)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<py3fix>", line 1, in _raise
Exception: error message
>>> eval(compile('def _raise(*a): raise a[0], a[1], a[2]', '<my_source_file>', 'exec'))
>>> _raise(Exception, "error message", None)Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<my_source_file>", line 1, in _raise
Exception: error message