因此,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 ';'
同样,我知道有其他方法可以做到这一点。然而,这能做到吗?装饰器可以始终尊重原始函数的签名,还是有时或根本不尊重?如果这是可能的,那么它是异端吗?为什么?