そのため、Python で提供される明示的な C# または Java スタイルの StringBuilder クラスはありません。私はPythonに少し慣れていないので、私のアイデアが良いものかどうかはわかりません.
イテラブルを結合するデコレータ (可能であれば) が必要だとします。この特定の例は別の方法で実装できますが、他の使用例も考えられます。そう ...
@string_builder
def build_insert_statement(table_name, col_names, values, where_clause):
yield 'insert into '
yield table_name
yield ' ( '
yield ', '.join(col_names)
yield ' ) values ( '
yield ', '.join(values)
yield ' ) where '
yield where_clause
yield ';'
繰り返しますが、これを行う別の方法があることを知っています。しかし、これはできますか?デコレータは元の関数のシグネチャを常に尊重できますか? もしこれが可能なら、それは異端でしょうか?なんで?