Connection.execution_options(lib/sqlalchemy/engine/base.py)のソースコードを見ると、そのメソッドは接続にオプションを追加します。
これらのオプションは、将来の行動に影響を与えます。クエリ。
例として:ここで
result = connection.execution_options(stream_results=True).\
execute(stmt)
、動作がちょうどこのクエリの接続の途中で変更されました。 ある意味では、動作がわずかに異なるオブジェクトとして自身を「生成」またはクローン化します。
ここでは、自動コミットをTrueに設定することもできます。例
# obtain a connection
connection = ...
# do some stuff
# for the next section we want autocommit on
autocommitting_connection = connection.execution_options(autocommit=True)
autocommitting_connection.execute(some_insert)
result = autocommitting_connection.execute(some_query)
# done with this section. Continue using connection (no autocommit)
これは、ドキュメントのそのセクションでの意味です。 「生成メソッド」とは、作業を続けることができる同じインスタンスの変更されたコピーを返すメソッドを指します。これは、Connection、Engine、Executableの各クラスに適用されます。
いくつかのグーグルでは、それがコード生成の話をすることができ示唆して、それは考えにくい... http://www.program-transformation.org/Transform/GenerativeProgrammingWiki – jimw
それはPythonのジェネレータを意味するものではありません、それは確かです。このメソッドは接続状態を変更するためのもので、シーケンスを生成するのは意味がありません。 – alexis