私は、Python文法がreturn文を関数の外に出せるようになっていることに気付きましたが、私は文法を指定できるので、これは許されないと信じています。Python文法の終わり "関数の外への返却"
これは、これを可能にするPythonの文法の一部です:
single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE
simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
small_stmt: (expr_stmt | del_stmt | pass_stmt | flow_stmt |
import_stmt | global_stmt | nonlocal_stmt | assert_stmt)
flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt | yield_stmt
return_stmt: 'return' [testlist]
また、インタプリタは、構文エラー(関数外の「リターン」)としてこれを報告しますが、これがない場合はどのように、それを検出パーサすることができます文法で指定されていますか?
私はこれまで聞いたことがありませんが、あなたの例では、関数の外にreturn文がありますか? – Julien
さて、この文法から、私たちは:single_input => simple_stmt => small_stmt NEWLINE => flow_stmt NEWLINE => return_stmt NEWLINE => 'NEWLINE'を返します。 single_inputは文法の開始記号である(これはPythonのドキュメントで言及されているように)これを持っている。 –