kuroの覚え書き

96の個人的覚え書き

改行を入れてコードを見やすく

あるテーブルから別のテーブルに内容をコピーしたいとき

        q = session.query(Test.id,
                Test.samp,
                Test.gene,
                Test.zygo,
                Test.count,
                Test.z_id)
        ins = insert(Test_temp).from_select(
                (Test_temp.id,
                Test_temp.samp,
                Test_temp.gene,
                Test_temp.zygo,
                Test_temp.count,
                Test_temp.z_id),
                q)
        conn = engine.connect()
        conn.execute(ins)

Pythonの文法的に()の中では自由に改行ができるので、このように適当に改行を入れて見やすく書くことができる。
同じ内容を

        q = select(["test1.id, \
                test1.samp, \
                test1.gene, \
                test1.zygo, \
                test1.count, \
                test1.z_id"],
                from_obj=['test1'])
        ins = insert(Test_temp).from_select(
                (Test_temp.id,
                Test_temp.samp,
                Test_temp.gene,
                Test_temp.zygo,
                Test_temp.count,
                Test_temp.z_id),
                q)
        conn = engine.connect()
        conn.execute(ins)

こういうふうに表現するときは””の中になってしまうので、自由に改行ができなくなって、エスケープの \(バックスラッシュ)を改行のところに入れてやる必要がある。

ここで前から気になっていた'''もしくは”””トリプルクオーテーションの出番らしい。

つまりクオーテーションの中では改行できないのだけれど、そこをトリプルにすると改行がオッケーになるらしい。つまり上の例は

        q = select(["""test1.id, 
                test1.samp, 
                test1.gene, 
                test1.zygo, 
                test1.count, 
                test1.z_id"""],
                from_obj=['test1'])
        ins = insert(Test_temp).from_select(
                (Test_temp.id,
                Test_temp.samp,
                Test_temp.gene,
                Test_temp.zygo,
                Test_temp.count,
                Test_temp.z_id),
                q)
        conn = engine.connect()
        conn.execute(ins)

と書くとよろしいようで。