2012-03-30 14 views

Antwort

4
>>> property = "name" 
>>> formatter = "my %s is %%s" % property 
>>> print formatter % "wong2" 
my name is wong2 
3

Eine Doppel Prozent wird nach der Formatierung einer Single-Prozent-Zeichen erstellen Gleichzeitig mit der Verwendung von by-name anstelle von Positionsformatierung:

formatter = "my %(property)s is %(name)s" 
print formatter % { "property": "name", 
        "name": "wong2" } 

Diese Formulare ermöglichen eine variable Anzahl von Ersetzungen (d. H. nicht alle Schlüssel im Wörterbuch müssen verwendet werden und sie können mehr als einmal verwendet werden). Dies ist wichtig, wenn beispielsweise die Formatzeichenfolge aus einer Konfigurationsdatei gelesen wird.

1

Sie einen Formatierer entweichen kann es durch eine Verdoppelung

formatter = "my %s is %%s" % property 

Sie können tun, auch alle Substitutionen an:

1

Hier ist eine unterhaltsame Art und Weise mit einem Hilfsklasse

>>> property = "name" 
>>> class D(dict): 
...  def __missing__(self, key): 
...   return "%("+key+")s" 
... 
>>> formatter = "my %(property)s is %(value)s"%D(property=property) 
>>> formatter%D(value="wong2") 
'my name is wong2' 
1

ich persönlich nicht mag die % Formatierung Syntax zu tun, ich werde ganz so vorschlagen, die gleich wie in früheren Antworten, aber mit der format Syntax:

property = 'name' 
formatter = "my {} is {{}}".format(property) #=> "my name is {}" 
print formatter.format('wong') 
Verwandte Themen