2017-06-01 92 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) 
)