我是否可以通过某种方式更改Formatter
python的string.format()
用途?我有一个自定义的(禁用check_unused_args
方法),但这需要我使用formatter.format("text")
语法,而不是我更喜欢的"text".format()
语法。
我可以以某种方式换掉'默认格式化程序'吗?
注意:这只是一个小项目,我不需要担心搞乱库或任何东西。
答案 0 :(得分:5)
有什么方法可以改变Formatter python的string.format()使用吗?
没有。我认为理性是因为它会导致真正令人困惑的代码。人们会期望format_string.format(...)
表现出一种方式,并且它会表现出不同的行为,导致错误和普遍的悲伤。
你可以然而,明确告诉python你想要使用不同的格式化程序。
class MyFormatter(string.Formatter):
"""This is my formatter which is better than the standard one."""
# customization here ...
MyFormatter().format(format_string, *args, **kwargs)
通过继承string.Formatter
,您可以访问整个Formatter
API,这可以使您的自定义格式化程序更好地工作。
如果这还不够,您可以使用__format__
对象调用的Formatter
挂钩方法(包括标准对象)自定义对象如何格式化自己。