64

コマンドで実行されたコードは正確には何なのか疑問に思っていました:

>>> from __future__ import braces
SyntaxError: not a chance

ということで、pythonはオープンソースなので開いてみC:\Python27\Lib\__future__.pyました。braces驚くべきことに、モジュールのインポートを処理するものは何も見つかりませんでした。

それで、私の質問は、これを処理するコードはどこにありますか? そのコマンドを実行するとどうなりますか?

4

1 に答える 1

74

コードはfuture.cにあります:

future_check_features(PyFutureFeatures *ff, stmt_ty s, const char *filename)
...
  else if (strcmp(feature, "braces") == 0) {
    PyErr_SetString(PyExc_SyntaxError,
        "not a chance");
    PyErr_SyntaxLocation(filename, s->lineno);
    return 0;
  }
于 2014-01-14T22:24:50.567 に答える