Pythonスクリプト
'''
a
'''
from __future__ import print_function
うまく機能します(つまり、何もしません)が、
'''
a
'''
'''
b
'''
from __future__ import print_function
原因:
File "C:\test.py", line 8
from __future__ import print_function
SyntaxError: from __future__ imports must occur at the beginning of the file
どうして?
https://docs.python.org/2/reference/simple_stmts.html#future はこう言います:
将来のステートメントは、モジュールの上部近くに表示される必要があります。 futureステートメントの前に表示できる行は次のとおりです。
- モジュールdocstring(存在する場合)、
- コメント、
- 空行、および
- その他の将来の声明。
2番目の例では、from __future__ import print_function
の前にコメントと空白行のみが含まれていますが、まだ機能しません。
Python 2.7。
...これは、2番目の例と矛盾しているようです。
いいえ、コメントではないため、文字列です。
最初の文字列はコードからdocstringとして省略されますが、2番目の文字列は、文字列自体で構成されるコードのステートメントになります。 __future__
imports must before allコードに関連する行(効果のない行も含む)の前。