的COR矩形的方式來實現這一目標很可能是子類string.Formatter類,並使用的,而不是字符串的方法它的實例:
from string import Formatter
class IncrementalFormatter(Formatter):
pass # your implementation
f = IncrementalFormatter()
f.format("hello {name}", name="Tom")
以下Formatter
方法必須被覆蓋:
get_value()
應該返回一些特殊而不是提高LookupError
。
get_field()
應將field_name
參數保存到此對象中(或者如果對象不是我們的特殊對象,則可以正常進行)。
convert_field()
應該只是將conversion
參數保存到此對象中並且不進行任何轉換(或正常進行...)。
format_field()
應該使用此方法的參數field_name
和conversion
屬性和format_spec
參數(或正常執行...)從特殊對象重建字段格式字符串。
因此,舉例來說:
f.format("{greet} {who.name!r:^16s}", greet="hello")
應導致"hello {who.name!r:^16s}"
,其中"who.name"
爲field_name
,"r"
是conversion
,"^16s"
爲format_spec
,所有這三個值重新組合回"{who.name!r:^16s}"
,使它可以在下一個格式化過程中使用。
附加說明:特殊對象在訪問任何屬性(使用.
)或項目(使用[]
)時應返回自身。
你能舉出更清晰的例子來證明你想要什麼嗎?你的問題不清楚。 –