2017-06-01 152 views
0

我目前正在研究一个可以从模型生成java域类的python脚本。而在生成所述设置器工作我写这一行:在一个元组内重复元素

# sb is a StringBuilder 
sb.add('public void set%s(%s %s) {\n\tthis.%s = %s;\n}\n' 
    % (prop.name.capitalize(), prop.type, prop.name, prop.name, prop.name)) 

其输出下面(与prop.name = "name"prop.type = "String"):

public void setName(String name) { 
    this.name = name; 
} 

我觉得重复prop.name 3倍是有点冗余,并我预见在这个脚本完成之前会写更多这些行。我想知道是否有更干净写作元组,可能像(..., prop.name * 3)的方式

回答

3

您可以使用新的字符串格式化:

sb.add(
    'public void set{capital_name}({type} {name}) {{\n\tthis.{name} = {name};\n}}\n'.format(
    capital_name=prop.name.capitalize(), type=prop.type, name=prop.name) 
)