2017-06-01 5 views
0

Ich arbeite derzeit an einem Python-Skript, das Java-Domänenklassen aus einem Modell generieren kann. Während der Arbeit der Einrichter auf die Generierung Ich schrieb diese Zeile:Wiederholte Elemente innerhalb eines Tupels

# 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)) 

, die die folgenden (mit prop.name = "name" und prop.type = "String") Ausgänge:

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

Ich glaube, dass die prop.name 3 mal Wiederholen eines Bit redundant ist, und Ich sehe voraus, dass mehr von diesen Zeilen geschrieben werden, bevor dieses Skript abgeschlossen ist. Ich frage mich, ob es eine Möglichkeit, das Tupel des Schreibens sauberen, vielleicht so etwas wie (..., prop.name * 3)

Antwort

3

Sie könnten die neuen String Formatierer verwenden:

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) 
) 
Verwandte Themen