DBテーブルのリストをパラメーターとして取得し、これらのテーブルで実行されるコマンド文字列を返す関数があります。例:
pg_dump( file='/tmp/dump.sql',
tables=('stack', 'overflow'),
port=5434
name=europe)
次のようなものを返す必要があります:
pg_dump -t stack -t overflow -f /tmp/dump.sql -p 5434 europe
これはを使用して行われtables_string='-t '+' -t '.join(tables)
ます。
関数が(タプル)のtables=('stackoverflow')
代わりに(文字列)で呼び出されると、楽しみが始まります。これにより、次のようになります。tables=('stackoverflow',)
pg_dump -t s -t t -t a -t c -t k -t o -t v -t e -t r -t f -t l -t o -t w
-f /tmp/dump.sql -p 5434 europe
文字列自体が繰り返されているためです。
このSOの質問は、型にassertを使用することを示唆していますが、duck-typeの規則に違反しているため、Pythonicで十分かどうかはわかりません。
洞察はありますか?
アダム